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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2009, 21:07   #1
JulLy
Профессионал
Пользователь
 
Аватар для JulLy
 
Регистрация: 27.04.2009
Сообщений: 37
Печаль Строки

Всем Здрасте!Хочу поздравить вас с Великим праздником победы!Я уже один раз обращалась к вам за помощью на форум-одни добрый человек мне уже помог...Но здесь возникла еще одна проблема...Напомню:у нас не было пол года информатики...а тут пришла проверка какае-то,и типа нам надо сделать задачи на паскале...мы вообще паскаль не проходили...Короче я в этом ничего не понимаю
Вот условия задач
Строки

1.Дана строка символов,содержащая по крайней мере один данный символ.
Требуется определить все позиции вхождения этого символа в строку.
2.Дана строка символов(пользователь должен вводить).Заменить в ней все восклицательные знаки на данное слова(пользователь вводит)
3.Дана строка символов.Удалить лишние пробелы между словами ,оставив между ними только по одному пробелу.
4.Ввести строку символов.Подсчитать наибольшее число букв "а",идущих подряд в данной строке.
5.Дана строка символов.Группы символов в ней между группами пробелов считаются словами .Подсчитать сколько слов:
а)Содержит данная строка
б)начинающихся на букву "а"
в)содержат хотя бы одну букву "d"
6.Дана строка символов.Удалить из неё каждое слово нечётной длины.Слова
отделяются от друг друга группой пробелов.
7.Вывести на экран заглавные буквы английского алфавита в случайном порядке,
чтобы ни одна из букв не повторялась дважды.
JulLy вне форума Ответить с цитированием
Старый 09.05.2009, 22:10   #2
Gongled
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 78
По умолчанию

1.
Код:
program pr1;
uses CRT;
var
i : integer;
s : string;
c : char;
begin
clrscr;

write('Введите строку: ');
read(s);
write('Введите символ: ');
read(c);

write('Результат:');
for i:=1 to length(s) do
begin
     if s[i] = c then write(i:4);
end;

end.
2.
Код:
program pr2;
uses CRT;
var
i : integer;
s, p : string;
begin
clrscr;

write('Введите строку: ');
read(s);
write('Введите слово для замены: ');
read(p);


for i:=1 to length(s) do
begin
     if s[i] = '!' then
     begin
          delete(s,i,1);
          insert(p,s,i);
     end;
end;

write('Результат: ',s);

end.
3. Если только между словами.
Код:
program pr3;
uses CRT;
var
i : integer;
s : string;
begin
clrscr;

write('Введите строку: ');
read(s);


for i:=1 to length(s)-1 do
begin
     if (s[i] = ' ') and (s[i+1] = ' ') then
     begin
          delete(s,i,1);
          i:=i-1;
     end;
end;

write('Результат: ',s);

end.
4.
Код:
program pr2;
uses CRT;
var
i, count, max : integer;
s : string;
begin
clrscr;

write('Введите строку: ');
read(s);

max := 0;
count := 0;

for i:=1 to length(s) do
begin
     if (s[i] = 'a') then
     begin
          inc(count);
     end
     else
     begin
          if max < count then max := count;
          count := 0;
     end;
end;

write('Результат: ',max);

end.
Пишу глупости.

Последний раз редактировалось Gongled; 09.05.2009 в 22:24.
Gongled вне форума Ответить с цитированием
Старый 10.05.2009, 01:15   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
7.Вывести на экран заглавные буквы английского алфавита в случайном порядке,
чтобы ни одна из букв не повторялась дважды.
если множество разных вариантов решения. Можно, например, занести буквы в массив и затем его перемешивать случайным образом.

ниже решение на алгоритме - получаем случайным образом число от 1 до 26. проверяем, выпадало такое число раньше или нет, если выпадало, то повторяем цикл, если же нет, то мы нашли очередную букву, выводим её и отмечаем, что буква с таким кодом уже была.
вот решение:
Код:
var
  {массив для "отметки", какая буковка уже выпала}
  LetterMark : array[1..26] of boolean; 
  i, CurLetter, AllLetterCount: integer;
begin
  Randomize; {иницилизируем генератор сл.чисел}
  
  AllLetterCount := 0; {счётчик "выпавших" букв}
  
  {отметим, что ни одной ещё буквы не выпало}
  for i:=1 to 26 do LetterMark[i] := False;
  
  {основной цикл}
  while AllLetterCount<26 do 
  begin
    CurLetter := Random(26)+1;
    {проверим, была буква раньше или нет}
    if Not LetterMark[ CurLetter ] then begin
    {если раньше такой не было, то}
      {отметили, что была такая буква}
      LetterMark[ CurLetter ] := True;

      {счётчик букв увеличили на 1}
      AllLetterCount := AllLetterCount + 1;

      {вывели найденную букву на экран.
        т.к. код латинской буквы A = 65
         то, чтобы вывести букву надо к числу прибавить 64}
      Write(Chr(CurLetter+64))
    end;
  end;
  WriteLn;
  Readln;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.05.2009, 22:29   #4
JulLy
Профессионал
Пользователь
 
Аватар для JulLy
 
Регистрация: 27.04.2009
Сообщений: 37
По умолчанию !!

Мальчишки!ааааааааааааа....Спасибо вам...Я очень благодарна!Можете еще 5 и 6-ое сделать?
JulLy вне форума Ответить с цитированием
Старый 10.05.2009, 22:39   #5
JulLy
Профессионал
Пользователь
 
Аватар для JulLy
 
Регистрация: 27.04.2009
Сообщений: 37
По умолчанию

просто срочно нужно=(
JulLy вне форума Ответить с цитированием
Старый 10.05.2009, 23:26   #6
Tkirill
Форумчанин
 
Аватар для Tkirill
 
Регистрация: 22.12.2008
Сообщений: 104
По умолчанию 6

Код HTML:
uses crt;
var
s,w:string;
i:integer;
begin
clrscr;
write(' -> ');
readln(S);
i:=1;
s:=s+' ';
w:='';
repeat
if s[i]<>' ' then w:=w+s[i]
else
 if w<>'' then
          begin
          if length(w) mod 2<>0 then begin delete(s,i-length(w),length(w)); i:=i-length(w); end;
          w:='';
          end;
i:=i+1;
until i>length(s);
write(s);
readln;
end.
@(o_0)@
Tkirill вне форума Ответить с цитированием
Старый 10.05.2009, 23:33   #7
JulLy
Профессионал
Пользователь
 
Аватар для JulLy
 
Регистрация: 27.04.2009
Сообщений: 37
По умолчанию

ммм...Пасибочки!Еще 5 и усё...Ваще сказка будет!:*
JulLy вне форума Ответить с цитированием
Старый 10.05.2009, 23:35   #8
Tkirill
Форумчанин
 
Аватар для Tkirill
 
Регистрация: 22.12.2008
Сообщений: 104
По умолчанию

Код:
uses crt;
var
n,q,num:integer;
s,w:string;
i:integer;
begin
clrscr;
write(' -> ');
readln(s);
w:=''; s:=s+' ';
i:=1; n:=0; q:=0; num:=0;
repeat
if s[i]<>' ' then w:=w+s[i]
else if w<>'' then
        begin
        inc(num);
        if w[1]='a' then inc(n);
        if pos('d',w)<>0 then inc(q);
        w:='';
        end;
i:=i+1;
until i>length(s);
writeln(' Количество слов в строке ',num);
writeln(' Количество слов начинающихся на букву а ',n);
writeln(' Количество слов имеющих хоть одну букву d ',q);
readln;
end.
@(o_0)@
Tkirill вне форума Ответить с цитированием
Старый 10.05.2009, 23:38   #9
Tkirill
Форумчанин
 
Аватар для Tkirill
 
Регистрация: 22.12.2008
Сообщений: 104
По умолчанию

сказка рядом)
@(o_0)@
Tkirill вне форума Ответить с цитированием
Старый 10.05.2009, 23:52   #10
JulLy
Профессионал
Пользователь
 
Аватар для JulLy
 
Регистрация: 27.04.2009
Сообщений: 37
По умолчанию

а 5-тое по отдельности можо?
JulLy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки. Как вывести часть строки? Anfall Общие вопросы Delphi 7 26.02.2009 09:10
Строки (C++) Kventin Помощь студентам 3 27.12.2008 01:33
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
Строки Zenit10 Помощь студентам 10 18.01.2008 15:49
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45