Пятница, 10.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 3 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Модератор форума: Seqular, Pavel  

Задачка на матрицы
AlexanderДата: Вторник, 04.11.2008, 22:49 | Сообщение # 31
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Quote (Seqular)
А у меня ничего не клинило... Если клинило, значит где-то что-то неправильно сделал. И нужно логику программы исправлять. =)

выполни программу:
Code
var
    a:string;
begin
    Read(a);
    ReadLn;
end.


Скажем дружно- нафиг нужно!
 
SeqularДата: Вторник, 04.11.2008, 23:01 | Сообщение # 32
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Quote (Alexander)
выполни программу:
var
a:string;
begin
Read(a);
ReadLn;
end.

Программа не имеет смысла.


Поддерживаю также проект сообщество молодых сисадминов
 
SeqularДата: Вторник, 04.11.2008, 23:03 | Сообщение # 33
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Тем более, что логически она неправильно построена. Конец ввода с клавиатуры подтверждается нажатием клавиши RETURN, что само по себе не дает возможности нормально пользоваться Read(). Замени Read на Readln и увидишь разницу. Это не глюк паскаля и не слабость ДОС. Это особенности процедуры Read.

Поддерживаю также проект сообщество молодых сисадминов
 
AlexanderДата: Среда, 05.11.2008, 00:23 | Сообщение # 34
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: 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
Репутация: 35
Статус: 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
Репутация: 0
Замечания: 0%
Статус: Offline
Ох-е! на офтопили то, меня щас вот вопрос терзает, как readkey работать должен, точто у меня он был воспринят програмой как неизвесный идентификатор

Излил душу - Вытри за собой!
 
AlexanderДата: Среда, 05.11.2008, 06:56 | Сообщение # 37
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Quote (Seqular)
Readln кроме того, что вводит строку с клавиатуры, так же очищает очередь. Потому медленнее, но потому же и предпочтительнее, если ввод идет с клавиатуры.

Какую ещё очередь?
Quote (Seqular)
Конец строки+возврат каретки. Т.е. #13#10. Считай, что это клавиша Enter.

в таком случае утверждение:
Quote (Seqular)
Конец ввода с клавиатуры подтверждается нажатием клавиши RETURN

На самом деле ввод заканчивается, как только вводится символ возврата каретки, а перевода строки может и не быть(а может быть и несколько раз). Это легко проверить на практике и не заглядывая в код процедуры.
Quote (Seqular)
Return, если хочешь

Это не я хочу, я <Enter> Return'ом не обзывал. wink
Кстати, хочу напомнить, что и в ДОС и в Вин операции ввода/вывода реализуются чтением из драйверов, с которыми работают также, как и с файлами.


Скажем дружно- нафиг нужно!
 
AlexanderДата: Среда, 05.11.2008, 06:58 | Сообщение # 38
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Quote (PROTOSS)
у меня он был воспринят програмой как неизвесный идентификатор

Ты
Code
uses crt;

забыл. Эта процедура из модуля crt smile , а не стандартная.


Скажем дружно- нафиг нужно!
 
PROTOSSДата: Среда, 05.11.2008, 07:04 | Сообщение # 39
Старый знакомый
Группа: Пользователи
Сообщений: 42
Репутация: 0
Замечания: 0%
Статус: Offline
Quote (Alexander)
Ты забыл. Эта процедура из модуля crt , а не стандартная.

я не забыл, а незнал, теперь знаю, но вот только куда ету uses crt; строку вбить?


Излил душу - Вытри за собой!

Сообщение отредактировал PROTOSS - Среда, 05.11.2008, 07:07
 
AlexanderДата: Среда, 05.11.2008, 07:14 | Сообщение # 40
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Quote (PROTOSS)
о вот только куда ету uses crt; строку вбить?

http://do.rksi.ru/library/courses/alg/tema2_2.dbk


Скажем дружно- нафиг нужно!
 
SeqularДата: Среда, 05.11.2008, 07:15 | Сообщение # 41
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Quote (Alexander)
с которыми работают также, как и с файлами.
все-таки это не Linux, где можно прочитать устройство Мышь как файл.

Quote (Alexander)
Это не я хочу, я <Enter> Return'ом не обзывал
. Да большой разницы нет... В данном случае, где речь заходит о вводе строки. В другом контексте, может быть, есть разница, причем большая.

Quote (Alexander)
На самом деле ввод заканчивается, как только вводится символ возврата каретки, а перевода строки может и не быть(а может быть и несколько раз). Это легко проверить на практике и не заглядывая в код процедуры.

(отвлекся и забыл, что хотел написать)

Создавай тему в др.разделе =)) поспорим. (вечно) а то приедтся за оффтоп обоих забанить..


Поддерживаю также проект сообщество молодых сисадминов
 
PROTOSSДата: Среда, 05.11.2008, 07:35 | Сообщение # 42
Старый знакомый
Группа: Пользователи
Сообщений: 42
Репутация: 0
Замечания: 0%
Статус: Offline
нус скажем так, с местом разобрался, но всеравно неработает, выдает 36 ошибку BEGIN expected. перед uses crt;

Излил душу - Вытри за собой!
 
AlexanderДата: Среда, 05.11.2008, 07:44 | Сообщение # 43
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Quote (PROTOSS)
нус скажем так, с местом разобрался, но всеравно неработает, выдает 36 ошибку BEGIN expected. перед uses crt;

код в студию.


Скажем дружно- нафиг нужно!
 
PROTOSSДата: Среда, 05.11.2008, 07:47 | Сообщение # 44
Старый знакомый
Группа: Пользователи
Сообщений: 42
Репутация: 0
Замечания: 0%
Статус: 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
Репутация: 16
Замечания: 0%
Статус: Offline
Quote (PROTOSS)
type ctpoka=array [1..100] of integer;
ta6=array [1..100] of ctpoka;
uses CRT;
var
...
и далее по програме
и в конце перед end. стоит readkey;

ну ясен пень, ещё раз глянь структуру программы(ссылка выше).


Скажем дружно- нафиг нужно!
 
  • Страница 3 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;