Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Помогите пожалуйста

Автор: Ludmilka 12.02.2007 16:01

Напишите мне пожалуйста задички целимок, мне очень срочно...
1) Дан массив из шести слов. Длина каждого слова не более 10-ти букв. Если слово в массиве нечётной длины, то удалить из него первую букву.
2) Дано предложенгие (записано на одной строке). Напечатать все символы предложения, расположенные после первой запятой (запятые в предложение есть). ПОМОГИТЕЕЕ

Автор: Айра 12.02.2007 16:17

У тебя хоть какие-нибудь наработки есть? Покажи. Используй Pos, Lenght, Delete...
Да и поиск помочь должен)))

Автор: Гость 12.02.2007 16:22

1-ya zadacha:


var
a:array [1..6] of string;
b:byte;
Begin
For b:=1 to 6 do
Begin
ReadLn(a[b]);
If Odd(length(a[b]))=True then Delete(a[b],1,1);
End;
End.


Автор: Гость 12.02.2007 16:25


var
a:string;
b:byte;
Begin
ReadLn(a);
For b:=Pos(',',a)+1 to length(a) do
Write(a[b]);
End.


Автор: Айра 12.02.2007 16:49

А я так поняла, что в 1-й надо еще и контролировать, сколько символов введут. Тогда будет так:

program odin(input,output);
uses wincrt;
var w: array [1..6] of string;
i: byte;
begin
for i:=1 to 6 do
begin
writeln('введите слово');
readLn(w[i]);
while length(w[i])>10 do
begin
writeln ('в слове должно быть не больше 10-ти символов. Повторите ввод');
readln (w[i]);
end;
if odd(length(w[i]))=true then delete(w[i],1,1);
writeln ('получилось: ',w[i],'');
end;
end.

Автор: volvo 12.02.2007 18:02

Айра, здесь логичнее было бы пользоваться Repeat ... Until - дело в том, что слово-то введут хотя бы один раз в любом случае, а это значит, что проверять какое-то условие надо ПОСЛЕ действия, отсюда - цикл с ПОСТусловием, чтобы ReadLn не присутствовало дважды:

for i:=1 to 6 do
begin
writeln('введите слово');
repeat
readLn(w[i]);
if length(w[i]) > 10 then
writeln ('в слове должно быть не больше 10-ти символов. Повторите ввод');
until length(w[i]) <= 10;

if odd(length(w[i])) then delete(w[i],1,1); { <-- "= True" зачем? }
writeln ('получилось: ',w[i]);
end;

Если смущает повторное использование Length - тогда надо флаг заводить дополнительно...

Автор: Айра 12.02.2007 19:49

Цитата
здесь логичнее было бы пользоваться Repeat ... Until

Согласна. Сразу не догадалась wink.gif и с odd(length(w[i])) тоже...