IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> строки
snopy
сообщение 19.02.2008 20:35
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Мужской

Репутация: -  0  +


Пожайлуста помогите подредоктировать такую программу.
Описать процедуру, которая печатает все слова, заканчивающаяся и начинающаяся на заданную букву.
В моём коде ошибка когда вводится например слова 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.  
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 8)
compiler
сообщение 19.02.2008 20:53
Сообщение #2


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


можна както так...
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...

Сообщение отредактировано: compiler - 19.02.2008 21:00


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
snopy
сообщение 20.02.2008 19:59
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Мужской

Репутация: -  0  +


а когда через строки делать что обозначает в условии (s[1]=ch) и где оно дальше используется
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 20.02.2008 20:03
Сообщение #4


Гость






Как "что означает"? Проверяет, совпадает ли первый символ строки (s[1]) с заданным (ch)...

Сообщение отредактировано: volvo - 20.02.2008 20:03
 К началу страницы 
+ Ответить 
snopy
сообщение 20.02.2008 21:20
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Мужской

Репутация: -  0  +


Вот что получилось только при проверке когда вводишь 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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
snopy
сообщение 20.02.2008 22:42
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Мужской

Репутация: -  0  +


пожайлуста помогите исправить
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
compiler
сообщение 20.02.2008 23:27
Сообщение #7


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(snopy @ 20.02.2008 21:42) *
пожайлуста помогите исправить
ты смотрела) что я привел? для обработки слова, функции необходимо _все_ слово целиком, а ты передаешь вместо слов буквы...


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
snopy
сообщение 21.02.2008 7:25
Сообщение #8


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Мужской

Репутация: -  0  +


вообщето я мужского пола. Я смотрел но что то не дошло до меня как это сделать
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 21.02.2008 9:42
Сообщение #9


Гость






Цитата
когда вводишь sisters, coc, sos и вводить букву c то выдаёт пустоту.
Вообще-то, когда при проверке твоей программы вводишь:
Цитата
Ishodnye slova:
sisters
coc
sos
vvedite bykvy:
s

, то выдается
Цитата
nuznye slova:
sisters
sos

Что я делаю не так?
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 13:59
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"