Паскаль, простенькие задачи

Ответить
Lacrin
Сообщения: 2
Зарегистрирован: 11 окт 2007, 22:03

11 окт 2007, 22:05

Помогите пожалуйста с парочкой простейших задач. Дали контрольную по паскалю, а я не вшариваю никак(
1) Ввести строку и подсчитать количество символов в ней
2) В строке есть как минимум один символ "а". определить их количество
3) -"- символ "б". Предусмотреть вывод на экран всех позиций "б" в строке
4)В строке есть текст в скобках
а) вывести его на экран
б) удалить из строки вместе со скобками
в) создать отдельную текстовую переменную в которую записать текст из скобок

Программы нужны до 8-30 утра 12 числа(
Аватара пользователя
Новенький
Сообщения: 73
Зарегистрирован: 01 июн 2007, 17:35
Откуда: Чусовой (Пермский край)
Контактная информация:

12 окт 2007, 11:38

срок конечно малый был :) я вот только днем прочел эту темку. А сами задачки не сложные
Программирование - хорошая штука
Аватара пользователя
Vedrus
Сообщения: 39
Зарегистрирован: 27 сен 2007, 13:04

13 окт 2007, 08:53

Тряхнуть стариной... Может кого спасёт

Код: Выделить всё

Var sScob,          {текст в скобках}
    s: String;
    i,              {номер символа в строке}
    countA,         {количество букв "а"}
    oScob,          {позиция открывающей скобки}
    cScob: Integer; {позиция закрывающей скобки}

Begin
 {Ввести строку и подсчитать количество символов в ней}
  WriteLn('Введите строку:');
  ReadLn(s);
  WriteLn('Число символов (включая пробелы): ', Length(s));
 {В строке есть как минимум один символ "а", определить их количество}
  countA := 0;
  for i := 1 to Length(s) do
    if s[i] = 'а' then
      Inc(countA);
  WriteLn('В строке ', countA, ' символов ''а''');
 {--//-- символ "б", предусмотреть вывод на экран всех позиций "б" в строке}
  Write('Позиции ''б'': ');
  for i := 1 to Length(s) do
    if s[i] = 'б' then
      Write(i, ', ');
  WriteLn;
 {вывести текст в скобках}
   oScob := pos('(', s);
   cScob := pos(')', s);
   if (oScob > 0) and (cScob > oScob) then
     sScob := Copy(s, oScob+1, cScob-oScob-1)
   else
     sScob := 'Скобки заданы неверно';
   WriteLn('Текст в скобках (в отдельной переменной): ', sScob);
 {удалить из строки вместе со скобками}
   if (oScob > 0) and (cScob > oScob) then
     begin
       Delete(s, oScob, cScob-oScob+1);
       WriteLn('Строка без скобок: ', s)
     end
End.
Ответить