Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2008, 00:11   #1
Karinna
 
Регистрация: 06.05.2008
Сообщений: 6
По умолчанию Заменить в каждой строке воскл. знаки на точки. - язык Pascal

Помогите с задачей, плиз! Затра нужно сдать, а то не видать мне зачета как своих ушей =)

Задано М строк символов, которые вводятся с клавиатуры. Каждая строка представляет собой последовательность символов, включающих в себя восклицательные знаки. Заменить в каждой строке воскл. знаки на точки.

В принципе, я понимаю что надо делать через copy и concat, но собрать все это в единую программу не могу...
Karinna вне форума Ответить с цитированием
Старый 06.05.2008, 00:20   #2
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

Цитата:
Сообщение от Karinna Посмотреть сообщение
Помогите с задачей, плиз! Затра нужно сдать, а то не видать мне зачета как своих ушей =)

Задано М строк символов, которые вводятся с клавиатуры. Каждая строка представляет собой последовательность символов, включающих в себя восклицательные знаки. Заменить в каждой строке воскл. знаки на точки.

В принципе, я понимаю что надо делать через copy и concat, но собрать все это в единую программу не могу...
Вы забыли 1 мелочь.. с помощью каких инструментов желали бы это сделать?
Abrakadabra вне форума Ответить с цитированием
Старый 06.05.2008, 00:22   #3
Karinna
 
Регистрация: 06.05.2008
Сообщений: 6
По умолчанию

в Паскале... или я неправильно поняла ваш вопрос?
Karinna вне форума Ответить с цитированием
Старый 06.05.2008, 08:27   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Так подойдет?
Код:
uses crt;
var s:string;i:integer;
begin
repeat
 writeln('Введите строку или пробел для окончания');
 readln(s);
 for i:=1 to length(s) do if s[i]='!' then s[i]:='.';
 writeln(s);
until s=' ';
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.05.2008, 08:57   #5
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

uses crt;
var s1,s2:string;
begin
clrscr;
writeln('Vvedite ishodnuy stroky');
readln(s1);
while pos('!',s1)>0 do s1[pos('!',s1)]:='.';
writeln(s1);
readln;
end.
SERG1980 вне форума Ответить с цитированием
Старый 07.05.2008, 00:22   #6
Karinna
 
Регистрация: 06.05.2008
Сообщений: 6
По умолчанию

Задано М строк символов, которые вводятся с клавиатуры

а как сделать, чтобы рассматривать сразу все введеные строки, а не каждый раз новую строку вводить?
Karinna вне форума Ответить с цитированием
Старый 07.05.2008, 01:00   #7
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Берёте какойнибудь цикл. Обьявляете массив типа String.

И чтото типа этого:

Код:
Var mas : array [1..M] of String;

For i := 1 To M Do
     Begin
          Readln(Stroka);
          {Делаете необходимую обработку строки}
          mas[i] := {обработанная строка}
     End;

{Выводим на экран.}
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 07.05.2008, 01:26   #8
Karinna
 
Регистрация: 06.05.2008
Сообщений: 6
По умолчанию

program stroka;
var s:string;
i,M:integer;
a:array [1..10] of string;
begin
write ('M');
readln (M);
for i:= 1 to M do
begin
write ('s');
readln (s);
for i:= 1 to lenght(s) do
if s[i]='!' then
s[i]:='.';
writeln (s);
end;
end;
end.

Что-то жутко напутала, т.к. выводит что-то непонятное =)
Karinna вне форума Ответить с цитированием
Старый 07.05.2008, 08:07   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да этот код вообще ничего не должен выводить - он с синтаксическими ошибками.
В цикле вводиш все строки:
Код:
var s:string;
i,M:integer;
a:array [1..10] of string;
begin
write ('M');
readln (M);
for i:= 1 to M do begin 
 write ('s');
 readln (s);
 for i:=1 to length(s) do if s[i]='!' then s[i]:='.';   
 a[i]:=s;
end;
И выводиш потом на экран:
Код:
 for i:= 1 to M do writeln (a[i]);
Ферштехен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.05.2008, 00:36   #10
Karinna
 
Регистрация: 06.05.2008
Сообщений: 6
По умолчанию

Так, ну вот как-то так она у меня получилась, но все равно не выводит итоговые строки с точками

program stroka;
var s,d:string;
i,j,k,M:integer;
a,a1:array [1..10] of string;
begin
write ('M');
readln (M);
for i:= 1 to M do
begin
write ('a[i]');
readln (a[i]);
end;
for i:=1 to M do
begin
s:='';
for k:= 1 to length(a[i]) do
begin
d:=copy (a[i],k,1);
if d<>'!' then
s:=concat (s,d)
else
begin
d:='.';
s:=concat (s,d)
end;
end;
a[i]:=s;
end;
for i:= 1 to M do
begin
writeln ('a1[j]=',a[i]);
end;
end.
где-то напутала с i и j...
Karinna вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
HTML,как заменить текст в адресной строке? Ладушка HTML и CSS 13 28.08.2008 19:37
в текстовом файле в каждой строке наити самое длинное слово Storm Помощь студентам 4 04.06.2008 15:56
В каждой строке массива выбирается максимальный элемент sergeyfsd Общие вопросы Delphi 2 13.05.2008 00:10
Отбражение чисел - точки, это точки, а не запятые, обозначающие дробную часть Дикий Помощь студентам 7 12.05.2008 17:57
найти минимальный элемент в каждой строке матрицы и записать все минимальные элементы в отдельный массив W_P Помощь студентам 6 28.12.2007 00:24