04.06.2012, 19:52 | #1 (permalink) |
Member
Регистрация: 13.05.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите, пожалуйста, с задачей на Паскале
вот моя программа, но она не работает....в чем ошибка? я не могу разобраться( program romanuk_6_2; uses crt; var a:string; z: set of char; n,n1,i,x,c:integer; begin textbackground(black); clrscr; z:=[' а','е','ё','и','о','у','ы','э','ю','я']; x:=3; randomize; c:=random(5)+2; textcolor(white); writeln('введите слово из ',c,' слогов '); textcolor (white); read(a); repeat for i:= 1 to length(a) do begin if a[i] in z then begin n:=n+1; end; end; n1:=n1+n; x:=x-1; if n=c then begin textcolor(green); writeln('правильно! вы набрали',n1,' бала(ов)'); writeln('у вас осталось',x,' попытки(ок)'); end else begin textcolor(red); writeln('неверно!'); writeln('у вас осталось ',x,' попытки(ок)'); end; if x<=0 then begin textcolor(green); writeln('кол-во попыток = 0!игра закончена '); writeln('вы набрали ',n1,'бала(ов) '); break end; until a=''; READLN; end. |
04.06.2012, 19:52 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Поищите в этих ссылках ответы Помогите с задачей на Паскале Помогите с задачей в паскале на одномерные массивы Помогите пожалуйста с задачей Помогите с задачей в паскале, работа с файлами Помогите, пожалуйста, с задачей в C++ Помогите пожалуйста с задачей по C++ |
04.06.2012, 20:28 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Черт, трудно мне проверять из-за этого изобилия кириллицы, но кое-что видно сразу, а именно
Чтение строковой переменной осуществляется ТОЛЬКО оператором Readln. Read для этого не годится. Исправьте - дальше посмотрим. |
04.06.2012, 20:36 | #3 (permalink) |
Member
Регистрация: 13.05.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
ну вот, уже чуть-чуть лучше, но у него не работает генератор чисел( точнее на протяжении "игры" он просит вводить слова с одинаковым кол-ом слогов)) и после первой попытки(которая работает нормально), вторая и третья всегда выдают ошибку.
|
04.06.2012, 21:00 | #5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
04.06.2012, 21:19 | #6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Попробуйте такой вариант:
Код:
uses crt; var a:string; z: set of char; n,n1,i,x,c:integer; yn:char; b:boolean; begin textbackground(black); clrscr; z:=['а','е','и','о','у','ы','э','ю','я']; randomize; n1:=0; Repeat x:=3; c:=random(5)+2; textcolor(white); repeat n:=0; b:=false; writeln('введите слово из ',c,' слогов '); textcolor (white); readln(a); If a<>'' then begin for i:= 1 to length(a) do if a[i] in z then n:=n+1; if n=c then begin textcolor(green); n1:=n1+n; writeln('правильно! вы набрали ',n1,' балла(ов)'); b:=true; end else begin textcolor(red); writeln('неверно!'); x:=x-1; writeln('у вас осталось ',x,' попытки(ок)'); end; end; until b or (x=0) or (a=''); if x=0 then begin textcolor(green); writeln('кол-во попыток = 0! игра закончена '); writeln('вы набрали ',n1,' балла(ов) '); end; write('сыграем еще (д/н)? '); readln(yn); Until (yn='н') or (yn='Н'); end. |
04.06.2012, 22:30 | #9 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Да... очень просто. Если играющий набрал слово с правильным числом слогов, то она становится true, а если она стала true, то дальнейшие попытки уже не нужны. Флажок такой.
|
04.06.2012, 22:46 | #10 (permalink) |
Member
Регистрация: 13.05.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|