Задачка на матрицы
|
|
Alexander | Дата: Вторник, 04.11.2008, 22:49 | Сообщение # 31 |
Всевышний
Группа: Модераторы
Сообщений: 475
Статус: Offline
| Quote (Seqular) А у меня ничего не клинило... Если клинило, значит где-то что-то неправильно сделал. И нужно логику программы исправлять. =) выполни программу: Code var a:string; begin Read(a); ReadLn; end.
Скажем дружно- нафиг нужно!
|
|
| |
Seqular | Дата: Вторник, 04.11.2008, 23:01 | Сообщение # 32 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| Quote (Alexander) выполни программу: var a:string; begin Read(a); ReadLn; end. Программа не имеет смысла.
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |
Seqular | Дата: Вторник, 04.11.2008, 23:03 | Сообщение # 33 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| Тем более, что логически она неправильно построена. Конец ввода с клавиатуры подтверждается нажатием клавиши RETURN, что само по себе не дает возможности нормально пользоваться Read(). Замени Read на Readln и увидишь разницу. Это не глюк паскаля и не слабость ДОС. Это особенности процедуры Read.
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |
Alexander | Дата: Среда, 05.11.2008, 00:23 | Сообщение # 34 |
Всевышний
Группа: Модераторы
Сообщений: 475
Статус: Offline
| Quote (Seqular) Это не глюк паскаля и не слабость ДОС. Это особенности процедуры Read. Да, ты прав. Я думал, что они отличаются только наличием обработки "AD" у readln, а там всё очень запущено, они совсем не похожи и read быстрее раз в 7. Причём внешне эти функции очень похожи, но readln под шумок вызывает ещё и функцию readtext. Quote (Seqular) Тем более, что логически она неправильно построена. Конец ввода с клавиатуры подтверждается нажатием клавиши RETURN, что само по себе не дает возможности нормально пользоваться Read(). Я так понял, что RETURN- это символ возврата каретки, но такой клавиши на стандартной клавиатуре нет, да и утверждение это не верно, D не всегда является сигналом об окончании ввода. А смысл всей фразы сводится к "процедурой Read нельзя нормально пользоваться".
Скажем дружно- нафиг нужно!
|
|
| |
Seqular | Дата: Среда, 05.11.2008, 06:36 | Сообщение # 35 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| Alexander, Скажем так, смысл заключается в том, что Read нужна не для этого. Посимвольное чтение из файла? Пожалуйста. Readln кроме того, что вводит строку с клавиатуры, так же очищает очередь. Потому медленнее, но потому же и предпочтительнее, если ввод идет с клавиатуры. Quote (Alexander) Я так понял, что RETURN- это символ возврата каретки Конец строки+возврат каретки. Т.е. #13#10. Считай, что это клавиша Enter. И тогда весь смысл заключается в том, что невозможно с клавиатуры ввести строку, не заканчивая ее #13#10 (Конечно, если не читать поклавишно ReadKey-ем.)... Как только мы вводим строку, жмем Enter (Return, если хочешь). Это и является признаком окончания ввода. Но Так как мы ввели строку с признаком конца строки - тут же срабатывает процедура Readln, которая, собственно и вводит строку до признака конца строки. Немного подумав, можно решить, что Read годится для ввода непрерывных данных, например чтения из файла, или из сокета.. Ну из любого места, где данные идут потоком. А с клавиатуры мы можем ввести только дискретно.. Т.е. все, что мы набираем (не нажимая Enter) фактически никуда не вводится.. И может быть в любой момент стерто... А вот после нажатия Enter-а и начинает собственно вводится... Но вот незадача, нажатием Enter-а мы добавили в конец нашей строки еще кое-что.... =)))
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |
PROTOSS | Дата: Среда, 05.11.2008, 06:41 | Сообщение # 36 |
Старый знакомый
Группа: Пользователи
Сообщений: 42
Статус: Offline
| Ох-е! на офтопили то, меня щас вот вопрос терзает, как readkey работать должен, точто у меня он был воспринят програмой как неизвесный идентификатор
Излил душу - Вытри за собой!
|
|
| |
Alexander | Дата: Среда, 05.11.2008, 06:56 | Сообщение # 37 |
Всевышний
Группа: Модераторы
Сообщений: 475
Статус: Offline
| Quote (Seqular) Readln кроме того, что вводит строку с клавиатуры, так же очищает очередь. Потому медленнее, но потому же и предпочтительнее, если ввод идет с клавиатуры. Какую ещё очередь? Quote (Seqular) Конец строки+возврат каретки. Т.е. #13#10. Считай, что это клавиша Enter. в таком случае утверждение: Quote (Seqular) Конец ввода с клавиатуры подтверждается нажатием клавиши RETURN На самом деле ввод заканчивается, как только вводится символ возврата каретки, а перевода строки может и не быть(а может быть и несколько раз). Это легко проверить на практике и не заглядывая в код процедуры. Quote (Seqular) Return, если хочешь Это не я хочу, я <Enter> Return'ом не обзывал. Кстати, хочу напомнить, что и в ДОС и в Вин операции ввода/вывода реализуются чтением из драйверов, с которыми работают также, как и с файлами.
Скажем дружно- нафиг нужно!
|
|
| |
Alexander | Дата: Среда, 05.11.2008, 06:58 | Сообщение # 38 |
Всевышний
Группа: Модераторы
Сообщений: 475
Статус: Offline
| Quote (PROTOSS) у меня он был воспринят програмой как неизвесный идентификатор Ты забыл. Эта процедура из модуля crt , а не стандартная.
Скажем дружно- нафиг нужно!
|
|
| |
PROTOSS | Дата: Среда, 05.11.2008, 07:04 | Сообщение # 39 |
Старый знакомый
Группа: Пользователи
Сообщений: 42
Статус: Offline
| Quote (Alexander) Ты забыл. Эта процедура из модуля crt , а не стандартная. я не забыл, а незнал, теперь знаю, но вот только куда ету uses crt; строку вбить?
Излил душу - Вытри за собой!
Сообщение отредактировал PROTOSS - Среда, 05.11.2008, 07:07 |
|
| |
Alexander | Дата: Среда, 05.11.2008, 07:14 | Сообщение # 40 |
Всевышний
Группа: Модераторы
Сообщений: 475
Статус: Offline
| Quote (PROTOSS) о вот только куда ету uses crt; строку вбить? http://do.rksi.ru/library/courses/alg/tema2_2.dbk
Скажем дружно- нафиг нужно!
|
|
| |
Seqular | Дата: Среда, 05.11.2008, 07:15 | Сообщение # 41 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| Quote (Alexander) с которыми работают также, как и с файлами. все-таки это не Linux, где можно прочитать устройство Мышь как файл. Quote (Alexander) Это не я хочу, я <Enter> Return'ом не обзывал . Да большой разницы нет... В данном случае, где речь заходит о вводе строки. В другом контексте, может быть, есть разница, причем большая. Quote (Alexander) На самом деле ввод заканчивается, как только вводится символ возврата каретки, а перевода строки может и не быть(а может быть и несколько раз). Это легко проверить на практике и не заглядывая в код процедуры. (отвлекся и забыл, что хотел написать) Создавай тему в др.разделе =)) поспорим. (вечно) а то приедтся за оффтоп обоих забанить..
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |
PROTOSS | Дата: Среда, 05.11.2008, 07:35 | Сообщение # 42 |
Старый знакомый
Группа: Пользователи
Сообщений: 42
Статус: Offline
| нус скажем так, с местом разобрался, но всеравно неработает, выдает 36 ошибку BEGIN expected. перед uses crt;
Излил душу - Вытри за собой!
|
|
| |
Alexander | Дата: Среда, 05.11.2008, 07:44 | Сообщение # 43 |
Всевышний
Группа: Модераторы
Сообщений: 475
Статус: Offline
| Quote (PROTOSS) нус скажем так, с местом разобрался, но всеравно неработает, выдает 36 ошибку BEGIN expected. перед uses crt; код в студию.
Скажем дружно- нафиг нужно!
|
|
| |
PROTOSS | Дата: Среда, 05.11.2008, 07:47 | Сообщение # 44 |
Старый знакомый
Группа: Пользователи
Сообщений: 42
Статус: Offline
| type ctpoka=array [1..100] of integer; ta6=array [1..100] of ctpoka; uses CRT; var ... и далее по програме и в конце перед end. стоит readkey;
Излил душу - Вытри за собой!
|
|
| |
Alexander | Дата: Среда, 05.11.2008, 07:55 | Сообщение # 45 |
Всевышний
Группа: Модераторы
Сообщений: 475
Статус: Offline
| Quote (PROTOSS) type ctpoka=array [1..100] of integer; ta6=array [1..100] of ctpoka; uses CRT; var ... и далее по програме и в конце перед end. стоит readkey; ну ясен пень, ещё раз глянь структуру программы(ссылка выше).
Скажем дружно- нафиг нужно!
|
|
| |