Статистика
Всего в нашей базе более 4 327 657 вопросов и 6 445 963 ответов!

Дана последовательность, содержащая от 2 до 30 слов, в каждом из от 1 до 8 символов строчных латинских букв между соседними словами-не менее одного

10-11 класс

пробела, за последним словом-точка. Составить программу на языке Паскаль
1) Все слова, которые встречаются в последовательность по одному разу

Annao4ka 17 окт. 2013 г., 0:40:49 (10 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
тале
17 окт. 2013 г., 1:25:04 (10 лет назад)

var
  ast:array[1..30] of string;

procedure GetWord(s: string; var ib: integer; var pWord: string; var l: integer);
// Возвращает слово pWord, которое является подстрокой s
// Разделителем слов являются один и более пробелов.
// ib при вызове процедуры указывает на позицию в строке s,
// начиная с которой ведется поиск слова.
// При выходе из процедуры ib - позиция начала найденного слова,
// l- длина найденного слова, l=0 если слово не найдено.
var
  i, n: integer;
  w: string;
begin
  n := Length(s);
  l := 0;
  w := '';
  if ib >= n then begin
    ib := n;
    pWord := ''
  end
  else begin
    i := ib;
    while (s[i] = ' ') and (i < n) do i := i + 1;
    ib := i;
    w := '';
    while (s[i] <> ' ') and (i < n) do
    begin
      w := w + s[i];
      i := i + 1
    end;
    if i < n then begin
      l := i - ib;
      pWord := w
    end
    else begin
      l := i - ib + 1;
      pWord := w + s[n]
    end;
    if pWord[l]='.' then pWord:=Copy(pWord,1,l-1)
  end
end;

procedure SortWords(n:integer);
// Сортировка первых n элементов массива ast
var
  i,j:integer;
  s:string;
begin
  for i:=1 to n-1 do
    begin
    if ast[i]>ast[i+1] then
      begin
      s:=ast[i]; ast[i]:=ast[i+1]; ast[i+1]:=s;
      j:=i;
      while j>1 do
        if ast[j]<ast[j-1] then
          begin
          s:=ast[j]; ast[j]:=ast[j-1]; ast[j-1]:=s;
          j:=j-1
          end
        else j:=0
      end
    end
end;

var
  s,st:string;
  p,n,i,len:integer;
  Flag:Boolean;
begin
  st:='    aquila non captat muscas   ';
  st:=st+'dolus an   virtus quis in hoste requirat  ';
  st:=st+'de mortuis aut bene aut nihil ';
  st:=st+'esse oportet ut vivas non vivere ut edas.';
  p:=1; i:=1; len:=1; n:=0;
  while len>0 do
    begin
    GetWord(st,p,ast[i],len);
    if len>0 then begin
      p:=p+len;
      n:=n+1;
      i:=i+1
      end
    end;
  for i:=1 to n do write(ast[i],' ');
  SortWords(n);
  writeln;
  writeln;
  s:=ast[1];
  Flag:=True;
  for i:=2 to n do
    if ast[i]<>s then
      begin
      If Flag then write(s,' ')
      else Flag:=True;
      s:=ast[i];
      end
    else Flag:=False;
  if Flag then write(ast[n],' ');
  writeln
end.

Тестовое решение:
aquila non captat muscas dolus an virtus quis in hoste requirat de mortuis aut bene aut nihil esse oportet ut vivas non vivere ut edas

an aquila bene captat de dolus edas esse hoste in mortuis muscas nihil oportet quis requirat virtus vivas vivere



+ 0 -
Maks9494
17 окт. 2013 г., 4:20:36 (10 лет назад)

Комментарий удален

Ответить

Другие вопросы из категории

Помогите решить срочно!!!
Представьте, что вы решили

помочь другу купить компьютеру. В магазине ему написали вот такой список:




Материнская плата GIGABYTE
GA-Z77-DS3H LGA 1155, ATX, Ret

Читайте также

иЗ ЧИСЛА И МЕСЯЦА сВОЕГО РОЖДЕНИЯ СОСТАВЬТЕ ТРЕХЗНАЧНОЕ ЧИСЛО СЛЕДУЮЩИМ ОБРАЗОМ:ЕСЛИ ДЕНЬ В ДАТЕ РОЖДЕНИЯ-ЧИСЛО ОТ 1 ДО 9,ТО К ЦИФРЕ ИЗ ОБОЗНАЧЕНИЯ ДНЯ

ПРИПИШИТЕ ДВЕ ЦИФРЫ МЕСЯЦА(НАПРИМЕР,ДЛЯ ДАТЫ 02.03.93 ИСКОМОЕ ЧИСЛО 203)ЕСЛИ ДЕНЬ В ДАТЕ РОЖДЕНИЯ-ЧИСЛО ОТ 10 ДО 31,ТО К ДВУМ ЦИФРАМ ИЗ ОБОЗНАЧЕНИЯ ДНЯ ПРИПИШИТЕ ВТОРУЮ ЦИФРУ ИЗ ОБОЗНАЧЕНИЯ МЕСЯЦА(НАПРИМЕР,ДЛЯ ДАТЫ 23.11.93 ИСКОМОЕ ЧИСЛО 231) мОЯ ДАТА РОЖДЕНИЯ 30.05.95

В управляющий совет школы входят родители, учителя и учащиеся школы, причем родителей должно бфть не менее одной трети от общего числа членов совета. В

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

Программа получает на вход два целых числа N и К (N>0, 0<=K<=N), записанные в отдельных строках, - текущее число члено совета и числао родителей в совете.

Программа должна вывести единственное число - минимальное число родителей, которое необходимо ввести в совет.

ПАСКАЛЬ.1)дан целочисленный массив из 30 элементов.элементы массива могут принимать целые значения от 0 до 1000.опишите на русском языке или на одном из

языков программирования алгоритм,позволяющий найти среднее арифметическое нечетных трехзначных чисел,записанных в этом массиве.если ни одного такого числа нет,нужно вывести сообщение об этом.
2)дан целочисленный массив из 30 элементов.элементы массива могут принимать целые значения от 0 до 100.опишите на русском языке или на одном из языков программирования алгоритм,позволяющий найти и вывести произведение элементов массива,которые имеют четное значение и не оканчиваются на 0.

Дана строка , в которой содержится осмысленное текстовое сообщение. Слова сообщения разделяются В заданном формате дд- целое число из диапазона от 1 до

31, мм - целое число из диапазона от 1 до 12, а гг - целое число из диапазона от 1 до 2020 (если какая-то часть формата нарушена, то данная подстрока в качестве даты не рассматривается.) Заменить каждую дату сообщения на дату следующего дня. Написать программу на Паскале. Сроооооооооооооочнооо. Пооожалуйста.....

10-11 класс информатика ответов нет
№1. Дан массив из 30-ти элементов. Каждый элемент может принимать целочисленные значения от 0 до 100. Напишите программу, которая позволит найти сумму

двузначных элементов массива, которые не оканчиваются на 3. №2. Дан массив из 100 элементов. Каждый элемент может принимать целочисленные значения от 1 до 500. Напишите программу, которая позволит найти и вывести минимальное значение среди элементов массива, которые делят максимальное значение элементов массива без остатка.



Вы находитесь на странице вопроса "Дана последовательность, содержащая от 2 до 30 слов, в каждом из от 1 до 8 символов строчных латинских букв между соседними словами-не менее одного", категории "информатика". Данный вопрос относится к разделу "10-11" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.