|
перевод числа из 10 сист счисления в двоичную
|
|
|
|
shplint |
Среда, 23 Января 2008, 14:07
|
Участник
Профиль
Группа: Участник
Сообщений: 156
Регистрация: 22.10.2005
Из: Россия, Семенов
Пользователь №: 9791
Конфигурация
Корпус: -- Процессор: Athlon 64 (socket 754/939/AM2) Материнская плата: Epox 9npa+ Оперативная память: SUMSUNG 256Мб,+384мб Видеокарта: Ati radeon x700 Жесткий диск (винчестер): Seagate Barracuda IV 340016A Дисковод: Нет дисковода CD/DVD: TEAC DW-552G, LG-GCR8500B Модем: smart ax mt880 Сетевой адаптер: -- Звуковая плата: -- Монитор: SUMSUNG SM 753DFX Операционная система: Windows XP Прочее: --
|
Помогите пожалуйста написать алгоритм перевода числа из 10-ой с.с. в 2-ую с.с. Язык Си.
|
|
|
|
|
Квазимодо |
Среда, 23 Января 2008, 15:32
|
Участник
Профиль
Группа: Участник
Сообщений: 162
Регистрация: 25.11.2003
Пользователь №: 6223
Конфигурация
Корпус: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: Нет дисковода CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Число в десятичной системе целое или с дробной частью?
--------------------
Я долго учился на чужих ошибках, и теперь мои собственные ошибки не хуже, чем у других.
|
|
|
|
|
Админ |
Среда, 23 Января 2008, 15:39
|
Администратор
Профиль
Группа: WinCity Team
Сообщений: 670
Регистрация: 01.10.2000
Пользователь №: 1
Конфигурация
Корпус: Sony VAIO VGN-FW21MR Процессор: Centrino/Core Duo Материнская плата: Intel PM45 Оперативная память: 4096 Мб DDR2 800 МГц Видеокарта: ATI Mobility Radeon HD3470 256 Мб GDDR3 Жесткий диск (винчестер): 320 Гб Serial ATA 5400 об/мин TOSHIBA MK3252GSX Дисковод: Нет дисковода CD/DVD: Blu-Ray, MATSHITA BD-MLT UJ230AS Модем: встроенный Сетевой адаптер: встроенный, Marvell Yukon 88E8055 PCI-E Gigabit Ethernet Controller Звуковая плата: встроенная, Realtek ALC262 Монитор: 17'' Samsung SyncMaster 757NF Операционная система: Vista Home Premium x64 SP2 Прочее: WiFi встроенный Intel(R) WiFi Link 5100 ABG
|
Не, ну до чего люди ленивые пошли. Пользоваться поиском в интернете им не позволяет религия. shplint, уважаемый. Ну неужели так сложно найти в интернете алгоритм первода чисел из одной системы в другу. Вот вам один из алгоритмов - тыцИли вы ждете что вам дадут готовое решение, прямо на нужном вам языке? А самому головой подумать слабо? Или вы так загружены выполнением заказов на написание лабораторных на "ANSI C", о которых вы здесь несколько раз пытались дать объявление, что головой думать недосуг?
--------------------
"Спорит либо дурак, либо подлец. Первый - не знает, а спорит, второй - знает, но спорит" Геральт из Ривии, ведьмак (© А. Сапковский, Сага о Ведьмаке)
|
|
|
|
|
shplint |
Среда, 23 Января 2008, 16:19
|
Участник
Профиль
Группа: Участник
Сообщений: 156
Регистрация: 22.10.2005
Из: Россия, Семенов
Пользователь №: 9791
Конфигурация
Корпус: -- Процессор: Athlon 64 (socket 754/939/AM2) Материнская плата: Epox 9npa+ Оперативная память: SUMSUNG 256Мб,+384мб Видеокарта: Ati radeon x700 Жесткий диск (винчестер): Seagate Barracuda IV 340016A Дисковод: Нет дисковода CD/DVD: TEAC DW-552G, LG-GCR8500B Модем: smart ax mt880 Сетевой адаптер: -- Звуковая плата: -- Монитор: SUMSUNG SM 753DFX Операционная система: Windows XP Прочее: --
|
Да я загружен, да + еще к экзамену готовлюсь...И ты тут ссылку написал, ты хоть смотрел че там? Или ты думаешь что я на бумаге не умею переводить числа в другие с.с.?
Сообщение отредактировал shplint - Среда, 23 Января 2008, 16:20
|
|
|
|
|
Админ |
Среда, 23 Января 2008, 20:30
|
Администратор
Профиль
Группа: WinCity Team
Сообщений: 670
Регистрация: 01.10.2000
Пользователь №: 1
Конфигурация
Корпус: Sony VAIO VGN-FW21MR Процессор: Centrino/Core Duo Материнская плата: Intel PM45 Оперативная память: 4096 Мб DDR2 800 МГц Видеокарта: ATI Mobility Radeon HD3470 256 Мб GDDR3 Жесткий диск (винчестер): 320 Гб Serial ATA 5400 об/мин TOSHIBA MK3252GSX Дисковод: Нет дисковода CD/DVD: Blu-Ray, MATSHITA BD-MLT UJ230AS Модем: встроенный Сетевой адаптер: встроенный, Marvell Yukon 88E8055 PCI-E Gigabit Ethernet Controller Звуковая плата: встроенная, Realtek ALC262 Монитор: 17'' Samsung SyncMaster 757NF Операционная система: Vista Home Premium x64 SP2 Прочее: WiFi встроенный Intel(R) WiFi Link 5100 ABG
|
shplint, Цитата(shplint @ Сегодня, 17:19) И ты тут ссылку написал, ты хоть смотрел че там? конечно я видел что там - "системы счисления для чайников". Просто и доступно. Цитата(shplint @ Сегодня, 17:19) Или ты думаешь что я на бумаге не умею переводить числа в другие с.с.? А вот как раз складывается такое впечатление. Если на бумаге все понятно, и вы, следуя определенному алгоритму, можете выполнить эти действия на бумаге, то ЧТО ЖЕ ВАМ МЕШАЕТ НАПИСАТЬ ТОЖЕ САМОЕ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ? Лень? Или хотите сделать свой труд чужими руками? И еще, я бы попросил вас, проявить все-таки немного уважения, мы с вам на ТЫ не переходили. И вместо того, чтобы бить себя пяткой в грудь, лучше ответьте на вопрос Цитата(Квазимодо @ Сегодня, 16:32) Число в десятичной системе целое или с дробной частью?
--------------------
"Спорит либо дурак, либо подлец. Первый - не знает, а спорит, второй - знает, но спорит" Геральт из Ривии, ведьмак (© А. Сапковский, Сага о Ведьмаке)
|
|
|
|
|
Archangel |
Среда, 23 Января 2008, 23:00
|
Участник
Профиль
Группа: Участник
Сообщений: 536
Регистрация: 23.10.2004
Из: Russia, Odintsovo
Пользователь №: 7483
Конфигурация
Корпус: CoolerMaster+FSP 1000W Процессор: Другой Материнская плата: ASUS striker II Formula Оперативная память: DDR2 2x2048Mb Видеокарта: ASUS 8800 gtx Жесткий диск (винчестер): Baracuda 200Gb SATA; WD 160Gb SATAII Дисковод: Нет дисковода CD/DVD: DVD+-RW Optiark Модем: больше не использую =) Сетевой адаптер: 1Gb onboard Звуковая плата: OnBoard Монитор: 22" SyncMaster T220G Операционная система: Win7 x64 Максимальная Прочее: --
|
//поправил Код main() { int b, c,n,m,y; long int x, a; printf ("Vvedite chislo v 10 sisteme s4isleniya :\n"); scanf ("%d", &a); m=2; x=0; c=1; while (n>0) { n=a/m; y=a%m; if(y!=0) {y=1; } b=(y)*c; c=c*10; a=a/m; x=b+x; } printf ("Eto 4islo v 2 sisteme s4isleniya = %u ", x); getch(); } Сообщение отредактировал Archangel - Среда, 23 Января 2008, 23:28
|
|
|
|
|
shplint |
Четверг, 24 Января 2008, 11:37
|
Участник
Профиль
Группа: Участник
Сообщений: 156
Регистрация: 22.10.2005
Из: Россия, Семенов
Пользователь №: 9791
Конфигурация
Корпус: -- Процессор: Athlon 64 (socket 754/939/AM2) Материнская плата: Epox 9npa+ Оперативная память: SUMSUNG 256Мб,+384мб Видеокарта: Ati radeon x700 Жесткий диск (винчестер): Seagate Barracuda IV 340016A Дисковод: Нет дисковода CD/DVD: TEAC DW-552G, LG-GCR8500B Модем: smart ax mt880 Сетевой адаптер: -- Звуковая плата: -- Монитор: SUMSUNG SM 753DFX Операционная система: Windows XP Прочее: --
|
Archangel, спасибо большое очень помог мне! Ты проверил его работоспособность? если что, у меня этот алгоритм не работает
Сообщение отредактировал shplint - Четверг, 24 Января 2008, 11:47
|
|
|
|
|
shplint |
Четверг, 24 Января 2008, 11:43
|
Участник
Профиль
Группа: Участник
Сообщений: 156
Регистрация: 22.10.2005
Из: Россия, Семенов
Пользователь №: 9791
Конфигурация
Корпус: -- Процессор: Athlon 64 (socket 754/939/AM2) Материнская плата: Epox 9npa+ Оперативная память: SUMSUNG 256Мб,+384мб Видеокарта: Ati radeon x700 Жесткий диск (винчестер): Seagate Barracuda IV 340016A Дисковод: Нет дисковода CD/DVD: TEAC DW-552G, LG-GCR8500B Модем: smart ax mt880 Сетевой адаптер: -- Звуковая плата: -- Монитор: SUMSUNG SM 753DFX Операционная система: Windows XP Прочее: --
|
Админ, на вашем форуме как-то не очень развивается раздел программирования. Хотелось бы чтобы его пропаганда велась более активным образом. Поставьте задачу своим модераторах, они конечно неплохо следят за сообщениями на форуме, но тема программирования вообще не развивается и факт...
|
|
|
|
|
Барэль |
Четверг, 24 Января 2008, 11:54
|
Впередсмотрящий
Профиль
Группа: WinCity Team
Сообщений: 6383
Регистрация: 08.11.2001
Из: Санкт-Петербург, Россия
Пользователь №: 633
Конфигурация
Корпус: CM Centurion 534 + 850W Zalman Процессор: Другой Материнская плата: ASUS M4A79XTD EVO Оперативная память: Samsung - 2x2048 Mb DDR3 PC10600 Видеокарта: 1024 Mb Asus Radeon HD5770 Жесткий диск (винчестер): 250 Gb Seagate SATA (системный) + 2 Tb Seagate LP SATA + 2 Tb Seagate LP SATA Дисковод: 3.5" CD/DVD: Nec 4570 DVD+-RW Модем: -- Сетевой адаптер: OnBoard Звуковая плата: OnBoard Монитор: 22 Samsung SyncMaster P2250 Операционная система: Windows XP Прочее: Акустическая система Microlab Solo 1, UPS APC CS500, МФУ Canon MP800, Cooler CoolerMaster (CM) V8, Процессор AMD Phenom II 945
|
Цитата(shplint @ Сегодня, 12:43) Поставьте задачу своим модераторах Партия сказала "НАДО!" - Комсомол ответил "ЕСТЬ!" А каким образом предполагается его развивать? Устроить рок-концерт в поддержку раздела Программирование?
--------------------
Вот. Винда проставилась. И даже уже BSOD выдала. Значит, работает! На всякий случай, воспользуйтесь поиском
|
|
|
|
|
shplint |
Четверг, 24 Января 2008, 12:04
|
Участник
Профиль
Группа: Участник
Сообщений: 156
Регистрация: 22.10.2005
Из: Россия, Семенов
Пользователь №: 9791
Конфигурация
Корпус: -- Процессор: Athlon 64 (socket 754/939/AM2) Материнская плата: Epox 9npa+ Оперативная память: SUMSUNG 256Мб,+384мб Видеокарта: Ati radeon x700 Жесткий диск (винчестер): Seagate Barracuda IV 340016A Дисковод: Нет дисковода CD/DVD: TEAC DW-552G, LG-GCR8500B Модем: smart ax mt880 Сетевой адаптер: -- Звуковая плата: -- Монитор: SUMSUNG SM 753DFX Операционная система: Windows XP Прочее: --
|
Барэль, над этим вопросом надо немножко подумать, но вполне понятно что этот раздел развивать нужно. К примеру можно, по примеру одного из сайтов, сделать темку для написания небольших статей(программок) о том какие хитрости можно провернуть со своим или чужим компьютером, влядея некоторыми приемами. Но этим должен заниматься человек шарящий в этом+это не должно противоречить УК РФ.
|
|
|
|
|
Барэль |
Четверг, 24 Января 2008, 16:54
|
Впередсмотрящий
Профиль
Группа: WinCity Team
Сообщений: 6383
Регистрация: 08.11.2001
Из: Санкт-Петербург, Россия
Пользователь №: 633
Конфигурация
Корпус: CM Centurion 534 + 850W Zalman Процессор: Другой Материнская плата: ASUS M4A79XTD EVO Оперативная память: Samsung - 2x2048 Mb DDR3 PC10600 Видеокарта: 1024 Mb Asus Radeon HD5770 Жесткий диск (винчестер): 250 Gb Seagate SATA (системный) + 2 Tb Seagate LP SATA + 2 Tb Seagate LP SATA Дисковод: 3.5" CD/DVD: Nec 4570 DVD+-RW Модем: -- Сетевой адаптер: OnBoard Звуковая плата: OnBoard Монитор: 22 Samsung SyncMaster P2250 Операционная система: Windows XP Прочее: Акустическая система Microlab Solo 1, UPS APC CS500, МФУ Canon MP800, Cooler CoolerMaster (CM) V8, Процессор AMD Phenom II 945
|
shplint, если хочешь - займись. Я уже устал писать, что авторство приветствуется.
--------------------
Вот. Винда проставилась. И даже уже BSOD выдала. Значит, работает! На всякий случай, воспользуйтесь поиском
|
|
|
|
|
Archangel |
Четверг, 24 Января 2008, 17:16
|
Участник
Профиль
Группа: Участник
Сообщений: 536
Регистрация: 23.10.2004
Из: Russia, Odintsovo
Пользователь №: 7483
Конфигурация
Корпус: CoolerMaster+FSP 1000W Процессор: Другой Материнская плата: ASUS striker II Formula Оперативная память: DDR2 2x2048Mb Видеокарта: ASUS 8800 gtx Жесткий диск (винчестер): Baracuda 200Gb SATA; WD 160Gb SATAII Дисковод: Нет дисковода CD/DVD: DVD+-RW Optiark Модем: больше не использую =) Сетевой адаптер: 1Gb onboard Звуковая плата: OnBoard Монитор: 22" SyncMaster T220G Операционная система: Win7 x64 Максимальная Прочее: --
|
Цитата Ты проверил его работоспособность? косяки начинаются если ты вводишь число больше 30 (в 10ссч) Потому что вывод единичек и нулей вревышает 5 знаков. Как поправить думаю догадаешься PS int не в состоянии выдать 6-и значное число )
|
|
|
|
|
shplint |
Четверг, 24 Января 2008, 19:10
|
Участник
Профиль
Группа: Участник
Сообщений: 156
Регистрация: 22.10.2005
Из: Россия, Семенов
Пользователь №: 9791
Конфигурация
Корпус: -- Процессор: Athlon 64 (socket 754/939/AM2) Материнская плата: Epox 9npa+ Оперативная память: SUMSUNG 256Мб,+384мб Видеокарта: Ati radeon x700 Жесткий диск (винчестер): Seagate Barracuda IV 340016A Дисковод: Нет дисковода CD/DVD: TEAC DW-552G, LG-GCR8500B Модем: smart ax mt880 Сетевой адаптер: -- Звуковая плата: -- Монитор: SUMSUNG SM 753DFX Операционная система: Windows XP Прочее: --
|
Этот алгоритм вообще неправильный, че-то он какой-то муторный у тебя и если честно я его непонял, конечно я еще зеленый в программировании. Но я считаю, что он слишком запутанный и вообще неправильный. Токо не обижайся...
|
|
|
|
|
shplint |
Четверг, 24 Января 2008, 19:54
|
Участник
Профиль
Группа: Участник
Сообщений: 156
Регистрация: 22.10.2005
Из: Россия, Семенов
Пользователь №: 9791
Конфигурация
Корпус: -- Процессор: Athlon 64 (socket 754/939/AM2) Материнская плата: Epox 9npa+ Оперативная память: SUMSUNG 256Мб,+384мб Видеокарта: Ati radeon x700 Жесткий диск (винчестер): Seagate Barracuda IV 340016A Дисковод: Нет дисковода CD/DVD: TEAC DW-552G, LG-GCR8500B Модем: smart ax mt880 Сетевой адаптер: -- Звуковая плата: -- Монитор: SUMSUNG SM 753DFX Операционная система: Windows XP Прочее: --
|
Вот он правильный алгоритм, написал его потратив чуть больше 20 минут. Появилось настроение и желание и все быстренько сделал. Админ, вот видишь справился, после того как подумал...Правда в этом алгоритме надо еще поменять в массиве А последовательность чисел на обратную, ну это я додумаю.
int main(int argc, char* argv[]) { static int i; int chislo,ost,chastnoe,A[100],size; const int osn=2; printf("enter number"); scanf("%d",&chislo); do { chastnoe=chislo/osn; ost=chislo%osn; {A[i]=ost;i++;} chislo=chastnoe;
} while (chastnoe>osn); size=i; for (i=0;i<size;i++) printf("%d",A[i]); getch();
|
|
|
|
|
Archangel |
Четверг, 24 Января 2008, 23:38
|
Участник
Профиль
Группа: Участник
Сообщений: 536
Регистрация: 23.10.2004
Из: Russia, Odintsovo
Пользователь №: 7483
Конфигурация
Корпус: CoolerMaster+FSP 1000W Процессор: Другой Материнская плата: ASUS striker II Formula Оперативная память: DDR2 2x2048Mb Видеокарта: ASUS 8800 gtx Жесткий диск (винчестер): Baracuda 200Gb SATA; WD 160Gb SATAII Дисковод: Нет дисковода CD/DVD: DVD+-RW Optiark Модем: больше не использую =) Сетевой адаптер: 1Gb onboard Звуковая плата: OnBoard Монитор: 22" SyncMaster T220G Операционная система: Win7 x64 Максимальная Прочее: --
|
Ну знаешь, одно единственного "правильного" алгоритма не существует Кому как больше нравится, тот так и пишет. Я не считаю, что написанный мною, является не верным. Впринципе особой разницы не вижу, кроме реализации массива для вывода поштучно символов
|
|
|
|
|
shplint |
Пятница, 25 Января 2008, 16:26
|
Участник
Профиль
Группа: Участник
Сообщений: 156
Регистрация: 22.10.2005
Из: Россия, Семенов
Пользователь №: 9791
Конфигурация
Корпус: -- Процессор: Athlon 64 (socket 754/939/AM2) Материнская плата: Epox 9npa+ Оперативная память: SUMSUNG 256Мб,+384мб Видеокарта: Ati radeon x700 Жесткий диск (винчестер): Seagate Barracuda IV 340016A Дисковод: Нет дисковода CD/DVD: TEAC DW-552G, LG-GCR8500B Модем: smart ax mt880 Сетевой адаптер: -- Звуковая плата: -- Монитор: SUMSUNG SM 753DFX Операционная система: Windows XP Прочее: --
|
У нас сегодня парню на экзамене одна из задач досталась такая, он сидел 3 часа и не смог вообще ничего написать по ней... Сам я однако тоже оплошал на 3 сдал, ощущение хреновое, мне с первой задачей неповезло. Дан строковый массив, программа должна отслеживать появление лишних пробелов и удалять их. Выложите свои идеи и алгоритмы. А я в свою очередь выложу, что я на экзамене наработал по этой программе.
|
|
|
|
|
Админ |
Пятница, 25 Января 2008, 18:44
|
Администратор
Профиль
Группа: WinCity Team
Сообщений: 670
Регистрация: 01.10.2000
Пользователь №: 1
Конфигурация
Корпус: Sony VAIO VGN-FW21MR Процессор: Centrino/Core Duo Материнская плата: Intel PM45 Оперативная память: 4096 Мб DDR2 800 МГц Видеокарта: ATI Mobility Radeon HD3470 256 Мб GDDR3 Жесткий диск (винчестер): 320 Гб Serial ATA 5400 об/мин TOSHIBA MK3252GSX Дисковод: Нет дисковода CD/DVD: Blu-Ray, MATSHITA BD-MLT UJ230AS Модем: встроенный Сетевой адаптер: встроенный, Marvell Yukon 88E8055 PCI-E Gigabit Ethernet Controller Звуковая плата: встроенная, Realtek ALC262 Монитор: 17'' Samsung SyncMaster 757NF Операционная система: Vista Home Premium x64 SP2 Прочее: WiFi встроенный Intel(R) WiFi Link 5100 ABG
|
shplint, поподробней постановку задачи можно?
Что представляет из себя заданный массив? (Массив, слов, или групп слов, т.е. заполнен ли он уже, как заполнен, и есть ли там пробелы?) Как могут появиться новые данные в этом массиве. Критерий определения того, что пробел является лишним, как и где он появляется? Требования к интерфейсу.
--------------------
"Спорит либо дурак, либо подлец. Первый - не знает, а спорит, второй - знает, но спорит" Геральт из Ривии, ведьмак (© А. Сапковский, Сага о Ведьмаке)
|
|
|
|
|
shplint |
Пятница, 25 Января 2008, 19:34
|
Участник
Профиль
Группа: Участник
Сообщений: 156
Регистрация: 22.10.2005
Из: Россия, Семенов
Пользователь №: 9791
Конфигурация
Корпус: -- Процессор: Athlon 64 (socket 754/939/AM2) Материнская плата: Epox 9npa+ Оперативная память: SUMSUNG 256Мб,+384мб Видеокарта: Ati radeon x700 Жесткий диск (винчестер): Seagate Barracuda IV 340016A Дисковод: Нет дисковода CD/DVD: TEAC DW-552G, LG-GCR8500B Модем: smart ax mt880 Сетевой адаптер: -- Звуковая плата: -- Монитор: SUMSUNG SM 753DFX Операционная система: Windows XP Прочее: --
|
Опишу, насколько помню. Программа считывает текст из текстового файла на консоль, текст представляет собой слова на англиском языке, разделенные знаком пробела, и если в тексте слова разделены не одним пробелом а двумя, то программа должна удалить лишний пробел. тип элемнтов массиве соответственно char, текст мы можем вводить и непосредственно с консоли, главное чтобы работал алгоритм.Интерфейс программы самый простой, не нужно ничего лишнего, я бы сказал об отсутствии интерфейса... Думаю теперь все понятно с формулировкой задачи. В свое оправдание скажу, что не сделал по причине отсутствия опыта работы с текстовыми данными и незнанием и неумением применить функции для тестового массива, надо исправляться.
|
|
|
|
|
shplint |
Воскресенье, 27 Января 2008, 0:04
|
Участник
Профиль
Группа: Участник
Сообщений: 156
Регистрация: 22.10.2005
Из: Россия, Семенов
Пользователь №: 9791
Конфигурация
Корпус: -- Процессор: Athlon 64 (socket 754/939/AM2) Материнская плата: Epox 9npa+ Оперативная память: SUMSUNG 256Мб,+384мб Видеокарта: Ati radeon x700 Жесткий диск (винчестер): Seagate Barracuda IV 340016A Дисковод: Нет дисковода CD/DVD: TEAC DW-552G, LG-GCR8500B Модем: smart ax mt880 Сетевой адаптер: -- Звуковая плата: -- Монитор: SUMSUNG SM 753DFX Операционная система: Windows XP Прочее: --
|
Админ, как продвигается решение этой задачки или решение стоит на месте мертвым грузом?
|
|
|
|
|
Админ |
Понедельник, 28 Января 2008, 10:58
|
Администратор
Профиль
Группа: WinCity Team
Сообщений: 670
Регистрация: 01.10.2000
Пользователь №: 1
Конфигурация
Корпус: Sony VAIO VGN-FW21MR Процессор: Centrino/Core Duo Материнская плата: Intel PM45 Оперативная память: 4096 Мб DDR2 800 МГц Видеокарта: ATI Mobility Radeon HD3470 256 Мб GDDR3 Жесткий диск (винчестер): 320 Гб Serial ATA 5400 об/мин TOSHIBA MK3252GSX Дисковод: Нет дисковода CD/DVD: Blu-Ray, MATSHITA BD-MLT UJ230AS Модем: встроенный Сетевой адаптер: встроенный, Marvell Yukon 88E8055 PCI-E Gigabit Ethernet Controller Звуковая плата: встроенная, Realtek ALC262 Монитор: 17'' Samsung SyncMaster 757NF Операционная система: Vista Home Premium x64 SP2 Прочее: WiFi встроенный Intel(R) WiFi Link 5100 ABG
|
shplint, Я не понимаю вас. При наличии времени, вы сами до сих пор не разобрались как это решается? Или вы хотить узнать смогу ли я решить эту задачу и приведу вам готовое решение? Я смогу, но писать код special for you не намерен. Исходя из условия задачи, массив тут совершенно не нужен, т.к. исходные данные находятся в файле, читаются из него, удаляются лишние пробелы и выводятся на консоль. Алгоритм будет примерно следующим: Код 1. открыть текстовый файл для чтения. 2. пока файл не прочитан полностью повторять: 3. считать из файла в переменную типа String строку 4. в цикле, пока в строке есть можно найти 2 пробела повторять: 5. заменить в строке 2 пробела на 1 6. вывести обработанную строку на экран. 7. закрыть текстовый файл. Для ввода с клавиатуры я думаю алгортм переделать не сложно. Соверую вам почитать про работу с текстовами файлами.
--------------------
"Спорит либо дурак, либо подлец. Первый - не знает, а спорит, второй - знает, но спорит" Геральт из Ривии, ведьмак (© А. Сапковский, Сага о Ведьмаке)
|
|
|
|
|
shplint |
Понедельник, 28 Января 2008, 16:34
|
Участник
Профиль
Группа: Участник
Сообщений: 156
Регистрация: 22.10.2005
Из: Россия, Семенов
Пользователь №: 9791
Конфигурация
Корпус: -- Процессор: Athlon 64 (socket 754/939/AM2) Материнская плата: Epox 9npa+ Оперативная память: SUMSUNG 256Мб,+384мб Видеокарта: Ati radeon x700 Жесткий диск (винчестер): Seagate Barracuda IV 340016A Дисковод: Нет дисковода CD/DVD: TEAC DW-552G, LG-GCR8500B Модем: smart ax mt880 Сетевой адаптер: -- Звуковая плата: -- Монитор: SUMSUNG SM 753DFX Операционная система: Windows XP Прочее: --
|
Админ это все понятно, но мне непонятно как сдвинуть строку на 1 позицию назад. Подскажи хороший сайт где объяснены функции работы со строками, пожалуйста. В поисковике я искал, мало что нашел хорошего... А алгоритм ты точно не можешь написать, это стопроцентов. И если бы ты написал его то это было бы нетолько для меня, а для всех посетителей этого форума, тебе так не кажется? Если ты соображал бы, то тебе это как 2 пальца, а не вондосил бы тут... вся фишка в этой программе чтобы сдвинуть строку после того как компилятор нашел второй проел на 1 позицию назад. И для начала можно сделать без чтения данных из файла.
Сообщение отредактировал Админ - Понедельник, 28 Января 2008, 19:07
|
|
|
|
|
Админ |
Понедельник, 28 Января 2008, 19:37
|
Администратор
Профиль
Группа: WinCity Team
Сообщений: 670
Регистрация: 01.10.2000
Пользователь №: 1
Конфигурация
Корпус: Sony VAIO VGN-FW21MR Процессор: Centrino/Core Duo Материнская плата: Intel PM45 Оперативная память: 4096 Мб DDR2 800 МГц Видеокарта: ATI Mobility Radeon HD3470 256 Мб GDDR3 Жесткий диск (винчестер): 320 Гб Serial ATA 5400 об/мин TOSHIBA MK3252GSX Дисковод: Нет дисковода CD/DVD: Blu-Ray, MATSHITA BD-MLT UJ230AS Модем: встроенный Сетевой адаптер: встроенный, Marvell Yukon 88E8055 PCI-E Gigabit Ethernet Controller Звуковая плата: встроенная, Realtek ALC262 Монитор: 17'' Samsung SyncMaster 757NF Операционная система: Vista Home Premium x64 SP2 Прочее: WiFi встроенный Intel(R) WiFi Link 5100 ABG
|
shplint, Алгоритм как раз написан, и написан вполне нормально, и тот, у кого есть хоть капля соображалки и способности абстрагироваться от " компилятора, который что-то ищет" ( так и хочется сказать находит, и перепрятывает - учите матчасть, уважаемый, чем занимается компилятор), способен его понять и реализовать. Для тех же кто в танке, или у кого запас своих мозгов неожиданно закончился, объясняю - можно обойтись и без сдвигов, если рассматривать текстовую строку не как массив символов, а именно как строку (паскалевский тип String) В этом случае можно пользоваться функциями работы со строками. Т.к. в стандартном паскале нет функции замены (что в принципе не правильно), то аналог такой функции придется писать самому. Для ленивых и немощных, привожу ее текст и пример использования: Код function StrReplace(const Source, Pattern, Value: String): String; var Result: String; i: Integer; begin Result := Source; i := pos(Pattern, Source); while i > 0 do begin Delete(Result, i, Length(Pattern)); Insert(Value, Result, i); i := pos(Pattern, Result); end; StrReplace := Result; end;
begin writeln(StrReplace('123__123__123','__','_')); end.
Правда необходимо помнить про ограничение на длину строк при работе с этими функциями - 255 символов
--------------------
"Спорит либо дурак, либо подлец. Первый - не знает, а спорит, второй - знает, но спорит" Геральт из Ривии, ведьмак (© А. Сапковский, Сага о Ведьмаке)
|
|
|
|
|
Админ |
Понедельник, 28 Января 2008, 19:51
|
Администратор
Профиль
Группа: WinCity Team
Сообщений: 670
Регистрация: 01.10.2000
Пользователь №: 1
Конфигурация
Корпус: Sony VAIO VGN-FW21MR Процессор: Centrino/Core Duo Материнская плата: Intel PM45 Оперативная память: 4096 Мб DDR2 800 МГц Видеокарта: ATI Mobility Radeon HD3470 256 Мб GDDR3 Жесткий диск (винчестер): 320 Гб Serial ATA 5400 об/мин TOSHIBA MK3252GSX Дисковод: Нет дисковода CD/DVD: Blu-Ray, MATSHITA BD-MLT UJ230AS Модем: встроенный Сетевой адаптер: встроенный, Marvell Yukon 88E8055 PCI-E Gigabit Ethernet Controller Звуковая плата: встроенная, Realtek ALC262 Монитор: 17'' Samsung SyncMaster 757NF Операционная система: Vista Home Premium x64 SP2 Прочее: WiFi встроенный Intel(R) WiFi Link 5100 ABG
|
Кстати, можно вообще обойтись без всяких функций, строк, сдвигов и удалений. Для этого исходные данные нужно обрабатывать на этапе их получения посимвольно и запоминать предыдущий прочитанный символ. Если и текущий и предыдущий символы - это пробелы, то текущий просто не заносить как прочитанный. Алгоритм Код 1. Пока не прочитаны все строки выполнять: 2. Сбросить запомненный символ (т.к. мы в начале очередной строки) 3. Пока в очередной читаемой строке есть символы, выполнять: 4. Считать очередной символ 5. Стравнить его с предыдущим запомненным и если они оба не равны пробелу, то предыдущий := текущий, а сам текущий занести в результирующий массив; 6. Повтрять шаги 4,5 пока не закончится строка 7. Перейти к на следующую строку и выполнить заново шаг с 1 по 7. 8. Вывести весь "прочитанный" массив
При таком алгоритме - все лишние пробелы пропускаются на этапе чтения (ввода с клавиатуры) данных.
--------------------
"Спорит либо дурак, либо подлец. Первый - не знает, а спорит, второй - знает, но спорит" Геральт из Ривии, ведьмак (© А. Сапковский, Сага о Ведьмаке)
|
|
|
|
|
Админ |
Понедельник, 28 Января 2008, 20:03
|
Администратор
Профиль
Группа: WinCity Team
Сообщений: 670
Регистрация: 01.10.2000
Пользователь №: 1
Конфигурация
Корпус: Sony VAIO VGN-FW21MR Процессор: Centrino/Core Duo Материнская плата: Intel PM45 Оперативная память: 4096 Мб DDR2 800 МГц Видеокарта: ATI Mobility Radeon HD3470 256 Мб GDDR3 Жесткий диск (винчестер): 320 Гб Serial ATA 5400 об/мин TOSHIBA MK3252GSX Дисковод: Нет дисковода CD/DVD: Blu-Ray, MATSHITA BD-MLT UJ230AS Модем: встроенный Сетевой адаптер: встроенный, Marvell Yukon 88E8055 PCI-E Gigabit Ethernet Controller Звуковая плата: встроенная, Realtek ALC262 Монитор: 17'' Samsung SyncMaster 757NF Операционная система: Vista Home Premium x64 SP2 Прочее: WiFi встроенный Intel(R) WiFi Link 5100 ABG
|
Цитата(shplint @ Сегодня, 17:34) Если ты соображал бы, то тебе это как 2 пальца, а не вондосил бы тут... вся фишка в этой программе чтобы сдвинуть строку после того как компилятор нашел второй проел на 1 позицию назад. Ну, что тут можно сказать, если бы кто-то соображал, то он бы решил эту задачу еще на экзамене, а не ждал бы "маны небесной" от кого-то другого. Да и проблемы реализовать сдвиг массива я вообще никакой не вижу (кроме неоптимальности этих действий). Для этого нужно с позиции лишнего пробела +1 пробежаться весь массив до конца и присваивать что-то типа a[i] := a[i-1]; Кстати можно массив не сдвигать - а забивать лишние пробелы символом #0, а при выводе на экран - такие элементы массива не выводить. Цитата(shplint @ Сегодня, 17:34) Подскажи хороший сайт где объяснены функции работы со строками, пожалуйста. А чем стандартный хелп не устраивает? Там даже примеры есть. Ну или можешь скачать какой-нибудь самоучитель или купить книгу (правда не знаю есть ли сейчас книги по паскалю)
--------------------
"Спорит либо дурак, либо подлец. Первый - не знает, а спорит, второй - знает, но спорит" Геральт из Ривии, ведьмак (© А. Сапковский, Сага о Ведьмаке)
|
|
|
|
|
pan |
Вторник, 29 Января 2008, 13:37
|
Участник
Профиль
Группа: WinCity Team
Сообщений: 2101
Регистрация: 11.11.2001
Из: крепость Владивосток
Пользователь №: 653
Конфигурация
Корпус: -- Процессор: Другой Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: Нет дисковода CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Цитата А алгоритм ты точно не можешь написать, это стопроцентов. И если бы ты написал его то это было бы нетолько для меня, а для всех посетителей этого форума, тебе так не кажется? Если ты соображал бы, то тебе это как 2 пальца, а не вондосил бы тут... shplint, давайте будем аккуратней на поворотах. Вы - автор топика и вы задали вопрос. Так что в первую очередь ответ нужен вам. А про остальных пользователей побеспокоимся мы. Если не секрет, на какой специальности учитесь?
|
|
|
|
|
shplint |
Вторник, 29 Января 2008, 14:14
|
Участник
Профиль
Группа: Участник
Сообщений: 156
Регистрация: 22.10.2005
Из: Россия, Семенов
Пользователь №: 9791
Конфигурация
Корпус: -- Процессор: Athlon 64 (socket 754/939/AM2) Материнская плата: Epox 9npa+ Оперативная память: SUMSUNG 256Мб,+384мб Видеокарта: Ati radeon x700 Жесткий диск (винчестер): Seagate Barracuda IV 340016A Дисковод: Нет дисковода CD/DVD: TEAC DW-552G, LG-GCR8500B Модем: smart ax mt880 Сетевой адаптер: -- Звуковая плата: -- Монитор: SUMSUNG SM 753DFX Операционная система: Windows XP Прочее: --
|
"Вычислительные машины, комплексы, системы и сети"
|
|
|
|
|
Барэль |
Вторник, 29 Января 2008, 14:19
|
Впередсмотрящий
Профиль
Группа: WinCity Team
Сообщений: 6383
Регистрация: 08.11.2001
Из: Санкт-Петербург, Россия
Пользователь №: 633
Конфигурация
Корпус: CM Centurion 534 + 850W Zalman Процессор: Другой Материнская плата: ASUS M4A79XTD EVO Оперативная память: Samsung - 2x2048 Mb DDR3 PC10600 Видеокарта: 1024 Mb Asus Radeon HD5770 Жесткий диск (винчестер): 250 Gb Seagate SATA (системный) + 2 Tb Seagate LP SATA + 2 Tb Seagate LP SATA Дисковод: 3.5" CD/DVD: Nec 4570 DVD+-RW Модем: -- Сетевой адаптер: OnBoard Звуковая плата: OnBoard Монитор: 22 Samsung SyncMaster P2250 Операционная система: Windows XP Прочее: Акустическая система Microlab Solo 1, UPS APC CS500, МФУ Canon MP800, Cooler CoolerMaster (CM) V8, Процессор AMD Phenom II 945
|
shplint, а тебе надо подсказку в решении или решение? Если первое, то Админ по-моему уже дал их штук 5. Если второе, то тут я поддержу Админа и скажу "думай сам". Потом в жизни тоже будешь сваливать на дядю Ваню? Цитата(shplint @ Сегодня, 15:14) Вычислительные машины, комплексы, системы и сети фигасе... Коллеги чтоль...
--------------------
Вот. Винда проставилась. И даже уже BSOD выдала. Значит, работает! На всякий случай, воспользуйтесь поиском
|
|
|
|
|
shplint |
Вторник, 29 Января 2008, 19:58
|
Участник
Профиль
Группа: Участник
Сообщений: 156
Регистрация: 22.10.2005
Из: Россия, Семенов
Пользователь №: 9791
Конфигурация
Корпус: -- Процессор: Athlon 64 (socket 754/939/AM2) Материнская плата: Epox 9npa+ Оперативная память: SUMSUNG 256Мб,+384мб Видеокарта: Ati radeon x700 Жесткий диск (винчестер): Seagate Barracuda IV 340016A Дисковод: Нет дисковода CD/DVD: TEAC DW-552G, LG-GCR8500B Модем: smart ax mt880 Сетевой адаптер: -- Звуковая плата: -- Монитор: SUMSUNG SM 753DFX Операционная система: Windows XP Прочее: --
|
Барэлб, ты несказанно рад этому... А алгоритм сам сделаю, когда экзамены сдам и можно будет заняться изучением строковых функций!
|
|
|
|
|
|
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
|
0 Пользователей:
|
|
© Copyright by WinCity.Ru 2001 - 2008 | Обратная связьУслуги веб-хостинга предоставлены компанией MTW.RU
|
|