Пожайлуста помогите подредоктировать такую программу. Описать процедуру, которая печатает все слова, заканчивающаяся и начинающаяся на заданную букву. В моём коде ошибка когда вводится например слова sos, coc, do, и задаётся буква s то выдаётся sos и coc/ Амн надо чтоб выдаваласть только sos. И ещё вопрос как можно сделать так чтоб слова вводились через пробел а при нажатии на ентер вводить букву и чтоб выводился результат.
Код
uses crt; var st:array[1..3]of string; i:integer; procedure vozvrat(var s:string); begin if s[1]=s[length(s)] then writeln (s); end; begin clrscr; writeln('Ishodnye slova:'); for i:=1 to 3 do readln(st[i]); writeln('vvedite bykvy: '); readln; writeln('nuznye slova:'); for i:=1 to 3 do vozvrat(st[i]); readln; end.
Автор: compiler 20.02.2008 0:53
можна както так...
type my_str=array[1..3]of char; var st:my_str; i:integer; procedure vozvrat(const s:my_str; const ch:char); begin if (s[1]=s[high(s)]) and (s[1]=ch) then writeln (s); end; begin writeln('Ishodnye slova:'); for i:=1 to 3 do begin writeln('vvedite bykvy: '); readln(st[i]); end; vozvrat(st, 's'); readln; end.
а если через строки, то так
procedure vozvrat(const s:string; const ch:char); begin if (s[1]=s[length(s)]) and (s[1]=ch) then writeln (s); end; var st:string; begin writeln('Ishodnye slova:'); readln(st); vozvrat(st, 's'); readln; end.
>>И ещё вопрос как можно сделать так чтоб слова вводились через пробел а при нажатии на ентер вводить букву и чтоб выводился результат. читаешь строку, разбиваешь ее на слова и вызываешь процедуру для каждого слова... как разбить на слова, есть в FAQ...
Автор: snopy 20.02.2008 23:59
а когда через строки делать что обозначает в условии (s[1]=ch) и где оно дальше используется
Автор: volvo 21.02.2008 0:03
Как "что означает"? Проверяет, совпадает ли первый символ строки (s[1]) с заданным (ch)...
Автор: snopy 21.02.2008 1:20
Вот что получилось только при проверке когда вводишь sisters, coc, sos и вводить букву c то выдаёт пустоту. Помогите пожайлуста это подправить
Код
Program z1; var st:array[1..3] of string; i:integer; procedure vozvrat(var s:string;ch:char); begin if (s[1]=s[length(s)]) and (s[1]=ch) then writeln (s); end; BEGIN writeln('Ishodnye slova: '); for i:=1 to 3 do readln(st[i]); writeln('vvedite bykvy: '); readln; writeln('nuznye slova: '); for i:=1 to 3 do vozvrat(st[i], 's'); readln; end.
Автор: snopy 21.02.2008 2:42
пожайлуста помогите исправить
Автор: compiler 21.02.2008 3:27
Цитата(snopy @ 20.02.2008 21:42)
пожайлуста помогите исправить
ты смотрела) что я привел? для обработки слова, функции необходимо _все_ слово целиком, а ты передаешь вместо слов буквы...
Автор: snopy 21.02.2008 11:25
вообщето я мужского пола. Я смотрел но что то не дошло до меня как это сделать
Автор: volvo 21.02.2008 13:42
Цитата
когда вводишь sisters, coc, sos и вводить букву c то выдаёт пустоту.
Вообще-то, когда при проверке твоей программы вводишь: