В строке найти количество слов, которые начинаются и заканчиваются одной и той же буквой - Pascal ABC

  1. Дана строка, состоящая из русских слов, набранная заглавными буквами и разделенная пробелами(одним или несколькими).найти кол-во слов, которые начинаются и заканчиваются одной и той же буквой


textual

Код к задаче: «В строке найти количество слов, которые начинаются и заканчиваются одной и той же буквой - Pascal ABC»

const N = 100;
type words = array[1..N] of string;
var input_str:string;   // исходная строка
var wrd_from_str:words;  // слова из строки
var wrd_count:byte; // кол-во слов
var i,j:integer;
 
//функция возвращает строку без "лишних пробелов".
function DeleteSpaces(s:string):string;
begin
while pos('  ',s)>0 do delete(s,pos('  ',s),1);
if s[1]=' ' then delete(s,1,1);
DeleteSpaces := s;
end;
 
 
 
//процедура разбивает строку на слова
//@param s - исходная строка
//@param wrd - получаемый массив слов
//@param cnt - количество полученных слов
procedure DivStrToWrd(s:string;var wrd:words;var cnt:byte);
    var i,b:integer;
     divs:set of char;
     w:boolean;
    begin
    cnt :=0;
    divs:=[' ',',','.','!','?',':',';']; //разделители
    w:=false;
    s:=s+' ';
    for i:=1 to length(s) do
     begin
     if w then
      begin
      if s[i] in divs then
       begin
       inc(cnt);
       wrd[cnt]:=copy(s,b,i-b);
       w:=false;
       end;
      end else
      begin
      if not (s[i] in divs) then
       begin
       w:=true;
       b:=i;
       end;
      end;
     end;
    end;
 
 
begin
 
input_str := 'ФЫВА ОЛДЖ  ЙЦУКЕН АББА ОЛДО ЕНГЩ НОН';
input_str := DeleteSpaces(input_str);
DivStrToWrd(input_str,wrd_from_str,wrd_count);
 
//ord(c) - код символа
 j:=0; // счетчик для слов,в которых 1-я буква = последней букве
for i:=1 to wrd_count do
 begin
  //writeln(wrd_from_str[i]);  -- для отладки
  //writeln(ord(wrd_from_str[i][1]));  -- для отладки
  if (ord(wrd_from_str[i][1]) = ord(wrd_from_str[i][length(wrd_from_str[i])])) then
  begin
  j:=j+1;
  writeln(wrd_from_str[i]);
  end;
 end;
 writeln(j);
end.

СДЕЛАЙТЕ РЕПОСТ

6   голосов, оценка 4.167 из 5



Похожие ответы
  1. Напишите программу, которая находит все различные цифры в символьной строке.Входные данные На вход программе подаётся символьная строка.Выходные данные Программа должна вывести в одной строке все различные цифры, которые встречаются в исходной строке, в порядке возрастания. Если в строке нет цифр, нужно вывести слово 'NO'.Примеры:входные данные ab1n32kz2выходные данные 123входные данные asdasdвыходные данные NO

  1. Описать процедуру SqP(x1, y1, x2, y2, P, S), вычисляющую периметр P и площадь S прямоугольника со сторонами, параллельными осям координат, по координатам (x1, y1), (x2, y2) его противоположных вершин (x1, y1, x2, y2 — входные, P и S — выходные параметры вещественного типа). С помощью этой процедуры найти периметры и площади трех прямоугольников с противоположными вершинами. P.S. помогите пожалуйста это решить,заранее спасибо за помощь)

  1. Заданы три квадратных уравнения: ax2 +bx+c=0, dx2 +fx+r=0, px2 +qx+k=0. Найти минимальное значение среди корней этих уравнений.

  1. Найти сумму целых положительных чисел из промежутка от А до B, кратных 4.(значения А и В вводятся с клавиатуры)

  1. Составить программу обработки строковой информации с выводом на экран исходного и результирующего текстов. Исходный текст выбирается самостоятельно.Вычеркните из строки X те символы, которые используются в строке X дважды.

  1. 34. Найти сумму положительных целых чисел, меньших 100

  1. Найти номер первого столбца, не содержащего ни одного элемента кратного 2.Добавлено через 3 часа 30 минут Дана действительная матрица размерности (n × n ). Найти номер первого столбца, не содержащего ни одного элемента кратного 2.

  1. Найти минимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.

  1. Добрый вечер! Помогите, пожалуйста Найти периметр n-угольника, заданного координатами вершин (массивы не использовать). Описать функцию определения расстояния между двумя точками.

  1. Дано числовую последовательность (100, 97, 94, ...). Найти сумму 30-ти членов последовательности чисел