Паскаль не работает read

Read в программе не работает

Помощь в написании контрольных, курсовых и дипломных работ здесь.

WaveStream, не работает Read
Считываю mp3 файл, и перегоняю его в WaveStream(NAudio) с изменением формата. Дале пытаюсь.

Не работает Read() Python
f = open(‘C:\Games\print.txt’,’r’) print (*f) x = f.read() print(x) f =.

Не работает NetworkStream.Read()
Привет, есть проблема, при получении данных через NetworkStream, ничего не происходит, будто ему.

System.in.read как работает?
Мне дали задания заполнить массив вводом с консоли. И я нашёл такую штуку, как System.in.read(). И.

Решение

INSERT в while (reader.Read() не работает
Господа, инсёрт в WHILE не рабоатет. В чем дело? в таблице tttt уже есть запись 1 1 no хочу.

Не работает read() после wirte()
Есть такой кусочек кода : #include #include #include .

Пример Read Text Files Into a Recordset не работает
НАшел примерчик один в Инете: http://www.freevbcode.com/ShowCode.asp?ID=2180 сделал, как там.

Парсинг на JSOUP APACHE, не работает read и getInputStream
Начинаю писать парс под андроид для динамического сайта. Использую JSOUP и APACHE, проблема состоит.

A disc read error occurred. На другом компьютере диск работает
У меня та же проблема. В один момент экран стал черным и перестала запускаться Windows7. Попытался.

Функция cin.get(array, 80) работает в одной программе, но не работает в другой
Добрый день. Я что то совсем запутался, одна и та же функция в одной программе работает, а в.

Источник

Не читается readln в паскаль

Есть не законченый код для решения квадратного уравнения. Столкнулся с проблемой, если присвоить переменной тип string то readln(переменная) не будет читаться, если заменить на real, тоесть на число, то все работает, дело в том что мне нужно именно буквенное выражение. Что делать?
program n_zigota;

const
awnser_1_1 = 1;
awnser_1_2 = 2;
awnser_1_3 = 3;
awnser_1_4 = 4;

var
a,b,c:real;
users_awnser_1:real;
users_awnser_2:string;

writeln(‘Все ответы писать цифрами!’);
writeln(‘ ‘);
writeln(‘Выберите квадратноe уравнениe: ‘);
writeln(‘ ‘);
writeln(‘1) ax^2+bx+c=0’);
writeln(‘2) ax^2-bx+c=0’);
writeln(‘3) ax^2+bx-c=0’);
writeln(‘4) ax^2-bx-c=0’);
writeln(‘ ‘);
write(‘Квадратное уравнение: ‘);
read(users_awnser_1);
writeln(‘ ‘);

if users_awnser_1 = awnser_1_1 then begin
write(‘Запишите переменную a: ‘);
read(a);
write(‘Запишите переменную b: ‘);
read(b);
write(‘Запишите переменную c: ‘);
read(c);
writeln(‘ ‘);
writeln(‘Ваше уравнение: ‘,a,’x^2+’,b,’x+’,c,’=0′);
writeln(‘Верно?’);
readln(users_awnser_2);
end

если ошибок нет, может пролетать .. если ошибки есть — пиши о них.

и да, в моем паскале все норм

Замените все свои Read() на ReadLn() и будет вам счастье.

Фишка в том, что процедура Read() оставляет в буфере клавиатуры смвол перевода строки, который при чтении в строковую переменную и приводит к такому эффекту.

Процедура же ReadLn() очищает буфер клавиатуры полностью. Для проверки достаточно заменить Read(c) на ReadLn(c) и программа остановится в ожидании второго ответа юзера.

Читайте также:  Как настроить денди через антенну

Источник

pascal не выполняет команду read(h);

if h=’+’ then begin read(b); c:=a+b; write(‘=’,c:10:4); readln; end;
if h=’-‘ then begin read(b); c:=a-b; write(‘=’,c:10:4); readln; end;
if h=’*’ then begin read(b); c:=a*b; write(‘=’,c:10:4); readln; end;
if h=’/’ then begin read(b); c:=a/b; write(‘=’,c:10:4); readln; end;

writeln(‘_____________________’);
writeln(»);
writeln (a:5:4,’ ‘,h,’ ‘,b:5:4,’ = ‘,c:5:4);
writeln(»);
writeln(‘______________________’);
writeln(»);>

<ума не приложу!
почему read(h); не выполняет?
а вот если readln; перед и после поставить, то выполняет.
из-за этого оформление примера сильно падает,
(риходится отдельно выписывать. )>

Хм, забавный пример. Никогда на это не обращал внимание.
Чтобы работало как задумано просто замени read(a) и read(h) на readln(a) и readln(h), и всё будет работать.

А прикол, если объяснять на пальцах, вот в чем:
Дело в том, что когда ты вводишь с клавиатуры строку и нажимаешь Enter, то передается не только непосредственно введенная строка, но и сам Enter т. е. спецсимвол с кодом 13, который обозначает снос каретки и не отображается на экране. Так вот, read как бы передает этот самый «лишний» спецсимвол в следующую команду read или readln. А вот readln на этом символе просто останавливается (игнорирует).. . Приведу поясняющий пример:

Допустим при запуске программы на строке read(a) ввели число 1 и нажали Enter. В этом случае считывается не только 1 но и нажатый Enter. Так вот, так как тип char вмещает в себя только 1 символ, то в переменную a передается первый символ строки т. е. единица, а «невлезающий» в нее Enter посылается в следующую команду read т. е. на строку read(b); и соответственно присваивается переменной b. Поэтому и не будет запроса на ввод b. Если бы мы ввели 12 и нажали Enter, то 1 пошло бы в a, 2 пошло бы в b, а Enter пошел бы в последний readln; и поэтому программа сразу бы завершилась ничего не выводя экран. С типом real то же самое с той лишь разницей, что в него считвается сразу всё введенное число, а не только первый символ, а Enter посылается дальше.. .
В общем, для считывания переменных лучше использовать readln, а не read 🙂 С ним таких заморочек нет.

Источник

Почему программа пропускает readln?

Программа — генератор инпута для задач С4 ЕГЭ. В целом программа должна работать, но почему-то pascal abc.net упорно пропускает readln(ans2); (строка 25)! Ну просто отказывается видеть эту команду и всё! В чем может быть косяк?

Добавлено через 52 минуты
Баг обыкновенный, как выяснилось. Переставил строку в другое место и заработало.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

почему программа пропускает часть кода
не могу разобраться прогоняю программу по строкам а она пропускает часть кода а именно со строки .

Читайте также:  Как настроит папки windows 8

Структуры и ввод строк с пробелами: программа пропускает второй шаг, сразу переходя к третьему — почему?
Здравствуйте, уважаемые форумчане! Я новичок и в С++ и на этом форуме, так что прошу сильно не.

Почему нужно 2 раза писать readln?
Почему нужно 2 раза писать readln? Читайте комментарий. Спасибо. end; var c:chelovek; begin.

Такая же проблема

Добавлено через 6 минут
Нашёл решение!
Надо использовать readln(); вместо read();

Источник

Паскаль.Задачка к ЕГЭ С4. Глюк read?

1Сники все знают. Помогите коллеги.Сын готовится к ЕГЭ.
Уже не в первый раз сталкиваемся с «глюками» паскаля. Уже разные сборки качали- не помогает.Сейчас установил последнюю PASCALABC.NET сборка 970.Виндовс 8 64. Может какие особенности есть? Ведь все же сдают и большинство на паскале.

При первом вводе строки I=1 все ОК. Сразу дает ввести read().
При втором в отладчике проскакивает read() меняет f=1 и программа работает некорректно.

Если Read поменять ReadLN то вообще бесконечный цикл- хотя по сути они идентичны.

Ну и текст если у кого паскаль под рукой:

const
N1 = 10;
var
b: array[1..N1] of string;
s, ini, name, otch: string;
ch: char;
N, i, j, k: integer;
f: byte;

begin
k := 0;
readln(s);
readln(N);
for i := 1 to N do
begin
for j := 1 to 2 do
begin
f := 0;
repeat
read(ch);
if f = 0 then ini := ini + ch;
f := 1;
name := name + ch;
until ch = ‘ ‘;
end;
read(otch);
ini := ini + copy(otch, 1, 1);
name := name + otch;
if ini = s then begin k := k + 1;b[k] := name; end;
ini := »;
name := »;
end;
for i := 1 to k do
begin
WRITE(B[K]);
end;
end.

(7) да уж насоветовал, там вообще то посимвольно читают char

Если у тебя будет цикл с read, и ты введешь «А» и нажмёшь ентер, а потом введёшь «Б» и нажмёшь ентер, то в цикле у тебя обработаются
А
Ентер
Б
Ентер

(7) (14) Ха-ха
>Если Read поменять ReadLN то вообще бесконечный цикл- хотя по сути они идентичны.

(21) никакой шутки, можно для интереса поинтересоваться у разрабов

тогда было очень много программистов знавших паскаль/дельфи которые и писали учетные программы

вот их и заюзали в качестве целевой, а уж чем там переводили это хз

>Учи дитеныша сразу нормально именовать переменные.

да ладно. в паскеле всегда так и было

и-тое и джи-тое в циклах

(22)какой?
т.е. в паскале важно переменные вначале объявлять?

короче если везде readln писать то бесконечный цикл. работает если везде readln и один раз read(ch)

(37) Буратине дали 5 яблок. 3 яблока он съел.
Вопрос: Сколько яблок осталось у Буратино?
Думаете 2?
А вот фик вам!
Неизвестно, сколько яблок было у Буратино ДО того, как ему дали 5 яблок.

Читайте также:  Не заводится бмв е39 не работает бензонасос

Мораль: обнуляйте переменные!
©

Ну вот как то так правильно надо решать эту задачу

type
PPeople = ^TPeople;

TPeople = record
FIO: String[250];
SmallFIO: string[3];
end;

var
count: integer;
i, j: integer;
CurrentPeople: PPeople;
Peoples: array of PPeople;
tmpvalue: string;
inputvalue: string;
CountOfSpace: integer;

procedure BeforeExit();
begin
for i := 0 to length(Peoples) — 1 do
begin
FreeMem(Peoples[i]);
end;
setlength(Peoples, 0);
end;

begin
write(‘Введите число людей ‘);
readln(count);
for i := 0 to count — 1 do
begin
while True do
begin
Write(‘Введите ФИО ‘ + IntToStr(i + 1) + ‘ человека ‘);
readln(inputvalue);
CountOfSpace := 0;
for j := 1 to length(inputvalue) do
begin
if (copy(inputvalue, j, 1) = ‘ ‘) and (j 2 then
begin
Write(‘ФИО человека не соответствует формату. Попробуем еще раз (y/n)’);
readln(tmpvalue);
if tmpvalue = ‘y’ then
Continue
else
begin
BeforeExit();
exit;
end;
end;
break;
end;
GetMem(CurrentPeople, sizeof(TPeople));
CurrentPeople^.FIO := inputvalue;
CurrentPeople^.SmallFIO := copy(inputvalue, 1, 1);
for j := 1 to length(inputvalue) do
begin
if copy(inputvalue, j, 1) = ‘ ‘ then
CurrentPeople^.SmallFIO := CurrentPeople^.SmallFIO +
copy(inputvalue, j + 1, 1);
end;
setlength(Peoples, length(Peoples) + 1);
Peoples[length(Peoples) — 1] := CurrentPeople;
end;
while True do
begin
write(‘Введите искомые инициалы ‘);
inputvalue := »;
while True do
begin
readln(inputvalue);
if length(inputvalue) <> 3 then
begin
Write(‘Инициалы человека не соответствует формату. Попробуем еще раз (y/n)’);
tmpvalue := »;
readln(tmpvalue);
if tmpvalue = ‘y’ then
Continue
else
begin
BeforeExit();
exit;
end;
end;
break;
end;
for i := 0 to count — 1 do
begin
CurrentPeople := Peoples[i];
if CurrentPeople^.SmallFIO = inputvalue then
writeln(CurrentPeople^.FIO + ‘ есть в нашей базе’);
end;
Write(‘Продолжим поиск (y/n)’);
readln(tmpvalue);
if tmpvalue = ‘y’ then
Continue
else
begin
BeforeExit();
exit;
end;
end;

(48) но самое главное а нафига так много? кода?

когда реально для (0) один цикл и все, ну если нескольких по инициалам искать то 2 цикла вложенных

(48) (49) вот так надо учить программированию

контроль входящих данных, независимость от размерности массивов, оптимизация (массив указателей, а не записей)

никакой объектности тут нет.

(50) ага так препод и поверил что ученик/студент «защиту от дурака» догадался сам сделать и т.д.

ЗЫ
program people;
uses sysutils;
var
fioCur,initials, initialsCur:string;
fioCount, fioNum, posImya, posOtchestvo:integer;
fio: array[1..100] of string;
begin
write(‘Vvedite kol-vo FIO (chislo): ‘);
readln(fioCount);

for fioNum:=1 to fioCount do begin
write(‘Vvedite (cherez probel) FIO ‘+IntToStr(fioNum)+’: ‘);
readln(fio[fioNum]);
end;

write(‘Vvedite initialy dlya poiska (bez probela): ‘);
readln(initials);

for fioNum:=1 to fioCount do begin
initialsCur := »;
fioCur := fio[fioNum];
initialsCur := initialsCur + Copy(fioCur,1,1);

posImya := Pos(‘ ‘, fioCur);
Delete(fioCur, 1, posImya);
initialsCur := initialsCur + Copy(fioCur,1,1);

posOtchestvo := Pos(‘ ‘, fioCur);
Delete(fioCur, 1, posOtchestvo);
initialsCur := initialsCur + Copy(fioCur,1,1);

if initialsCur=initials then writeln(‘Nashli: ‘+fio[fioNum]);
end;

Источник

Оцените статью