Программа которая считает количество слов в тексте паскаль

Любой текстовый редактор умеет заменять одну подстроку на другую, — это называется контекстной заменой. Устроим такую замену в строковой переменной. Итак, дана строка, содержащая несколько слов «Pascal». Заменим все вхождения слова «Pascal» словом «Паскаль» (чем не англо-русский переводчик?).

Глава 44 Строки Разобравшись с предыдущей задачей, вы легко одолеете и эту. Для проверки вашего решения сравните его с моим ( P_44_3 ). < P_44_3 — Замена слов «Pascal» на «Паскаль» >var S : string; < исходная строка >p : integer; < позиция в строке >begin S:=’Лучший язык программирования – Pascal! ‘+ ‘Изучите Pascal! Pascal не подведет!’; Writeln(S); < исходная строка >

repeat
p:= Pos(‘Pascal’, S);
if p>0 then begin

< удаляем это слово из строки >Delete(S, p, Length(‘Pascal’)); < и вставляем в этом месте слово ‘Паскаль’>Insert(‘Паскаль’, S, p); end until p=0; < выход, если слов ‘Pascal’ больше нет >Writeln(S); < строка результата >Readln; end.

Итоги

∙ Строка родственна массиву символов. Дополнительный нулевой элемент этого массива содержит длину строки. ∙ Строка, объявленная без указания размера, по умолчанию занимает 256 байтов памяти и может содержать до 255 символов. ∙ Для экономии памяти используют строки меньшего размера.

Посчитать Уникальные Слова в Тексте || Python задачи с технических собеседований

При объявлении таких строк размер указывают внутри квадратных скобок после слова STRING . ∙ В Паскале предусмотрен ряд встроенных процедур и функций, облегчающих обработку строк. А слабо? А) Напишите процедуру, переводящую все символы строки (латинские буквы) к верхнему регистру. Б) Напишите функцию для приведения любой буквы к верхнему регистру (включая и русские). Подсказка: вспомните о таблице кодировки.

Глава 44 Строки В) Напишите функцию для приведения любой буквы к нижнему регистру. Г) Напишите собственные процедуры и функции обработки строк, повторяющие те, что встроены в Паскаль. Дайте им названия, похожие на стандартные, например: MyCopy , MyDelete и так далее. Д) Вращение строки вправо. Напишите процедуру, перемещающую 1-й символ строки на место 2-го, 2-й — на место 3-го и т.д.

Читайте также:
Как найти телефон через программу найти устройство

Последний символ должен занять 1-е место. Примените средства обработки строк. Е) Вращение строки влево. Напишите процедуру для перемещения 2-го символа на место 1-го, 3-го — на место 2-го и т.д. Первый символ должен стать последним. Ж) Строка содержит несколько слов — предложение.

Напишите программы для решения следующих задач. ∙ Напечатать в столбик отдельные слова введённого предложения. ∙ Определить количество слов в строке. ∙ Равномерно расставить пробелы между словами так, чтобы удлинить строку до 80 символов (исходная строка короче 80). З) Напишите булеву функцию, определяющую, является ли строка (параметр) палиндромом.

Палиндром читается одинаково в обоих направлениях. И) Напишите булеву функцию, определяющую, можно ли из букв первого слова составить второе (например, «клавиша» и «вилка» — TRUE ). Учитывается только набор букв, а не их количество. Подсказка: примените множества. К) Дана строка, содержащая не менее трёх символов.

Программа на Python , высчитывающая количество пробелов,символов,слов в тексте.

Найти в ней три стоящих подряд символа, дающих максимальную сумму своих кодов. Л) В строке найти возрастающую последовательность символов наибольшей длины (сравнивайте коды символов). М) Напишите булеву функцию, проверяющую, следуют ли символы строки по неубыванию своих кодов. Н) Напишите функцию для шифрования строки путём перестановки её символов, расположенных на нечётных позициях: первый символ обменивается с последним, третий — с третьим от конца и т.д.

Источник: studfile.net

Программа которая считает количество слов в тексте паскаль

Помогите, пожалуйста, доработать программу.
Задание. Дана строка символов до точки. Группы символов в ней между группами пробелов считаются словами. Посчитать, сколько слов содержит данная строка.

Вот мой код, но если поставить два пробела подряд, то программа выдает слов на одно больше.

program z8; uses crt; var s: string; k,i:integer; begin clrscr; writeln(‘vvedite stroky simvolov, v kontce postavte tochky :’); readln(s); if (s=’.’) or (s=»)or (s=’ ‘) then writeln(‘ne verniy vvod’) else begin for i:=1 to length(s) do if (s[i]=’ ‘) or (s[i]=’.’) then k:=k+1; writeln(‘v vvedennoy stroke slov = ‘,k); end ; end.
Заблокирован
Регистрация: 20.07.2008
Сообщений: 4,033
Ну сначала надо удалить все после точки и ее саму
Delete(s,Pos(‘.’,s),length(s)-Pos(‘.’,s));
потом в цикле находить пробелы , увеличивать счетчик, и удалять все что до пробела и его самого
Регистрация: 15.03.2009
Сообщений: 9

Читайте также:
Сведения о доходах программа

Спасибо, сейчас попробую.

потом в цикле находить пробелы , увеличивать счетчик, и удалять все что до пробела и его самого
ничего у меня опять не получается. два или больше пробела считает тоже как слово.
Последний раз редактировалось Stilet; 15.12.2010 в 11:28 .
Белик Виталий 🙂
Регистрация: 23.07.2007
Сообщений: 57,792

Нехорошо колво пробелов считать : Вот фраза: «Привет (тут 30 пробелов) Пацан»
Сколько твоя прога слов насчитает?
Так кузявее будет:

var s: string; k,i:integer; begin writeln(‘vvedite stroky simvolov, v kontce postavte tochky :’); readln(s);k:=1; if (s=’.’) or (s=»)or (s=’ ‘) then writeln(‘ne verniy vvod’) else begin for i:=1 to length(s)-1 do if (s[i]=’ ‘)and(s[i+1]<>’ ‘) then k:=k+1; writeln(‘v vvedennoy stroke slov = ‘,k); end ; readln; end.
I’m learning to live.
Регистрация: 15.03.2009
Сообщений: 9

Спасибо, огромное! Все правильно считает, но если ввести два пробела и потом точку, то пишет, что 2 слова.

Что делать?

Белик Виталий 🙂
Регистрация: 23.07.2007
Сообщений: 57,792

Что делать?

Добавить в условие отсеивание точки )
I’m learning to live.
Регистрация: 15.03.2009
Сообщений: 9

uses crt; var s: string; k,i:integer; begin clrscr; writeln(‘vvedite stroky simvolov, v kontce postavte tochky :’); readln(s);k:=0; if (s=’.’) or (s=»)or (s=’ ‘) then writeln(‘ne verniy vvod’) else begin for i:=1 to length(s)-1 do if (s[i]=’ ‘)and(s[i+1]<>’ ‘)and (s[i]<>’.’) then k:=k+1; writeln(‘v vvedennoy stroke slov = ‘,k); end ; readln; end.
Белик Виталий 🙂
Регистрация: 23.07.2007
Сообщений: 57,792
Работает? Если нет то луче так:
if (s[i]=’ ‘)and not (s[i+1] in [‘ ‘,’.’]) then k:=k+1;
I’m learning to live.
Регистрация: 15.03.2009
Сообщений: 9

Спасибо! Но вот сейчас почему-то другая проблема — ввела несколько слов и с кучей пробелом между ними, получилось слов на 1 меньше, чем на самом деле.

Все работает. Спасибо огромное, Stilet!

У меня опять вопрос! вот если я ввожу сначала два (или несколько) пробелов, то тогда программка считает на 1 слово больше! Что не так? Помогите, пожалуйста!

var s: string; k,i:integer; begin clrscr; writeln(‘vvedite stroky simvolov, v kontce postavte tochky :’); readln(s);k:=1; if (s=’.’) or (s=»)or (s=’ ‘) then writeln(‘ne verniy vvod’) else begin for i:=1 to length(s)-1 do if (s[i]=’ ‘)and not (s[i+1] in [‘ ‘,’.’]) then k:=k+1; writeln(‘v vvedennoy stroke slov = ‘,k); end ; readln; end.
Последний раз редактировалось Stilet; 15.12.2010 в 11:29 .
Oldschool geek
Форумчанин
Регистрация: 09.03.2009
Сообщений: 611

Читайте также:
Как осуществить запуск программы кратко

Значит, нужно правильно обрабатывать начало строки.

Я из этих соображений вместо s[i — 1] использую временную переменную, которую можно инициализировать пробелом.

А ещё в данном случае можно вручную добавить пробел в начало строки.

P. S. Здесь уже дали совет, как избавиться от точки.

P. P. S. Почему транслитом?

If you want to get to the top, you have to start at the bottom

Источник: www.programmersforum.ru

Задача на Паскаль. Количество слов в строке.

Дана строка, заканчивающаяся точкой. Подсчитать, количество слов в строке.

задача на паскаль, количество слов в строке http://inphormatika.ru

Замечание.

Сколько слов в строке? Делаем упрощение. Между словами у нас что? Правильно — символ пробела!

Самое простое решение, основанное на том, что строка всегда заканчивается символом точки.

Решение №1.

program stroki;
var s:string;
k,i:integer;
begin write(Введите строку:);
readln(s);
s:= +s;
for i:=1 to length(s) do
if s[i]= then k:=k+1;
writeln(k);
end.

Но мы не ищем лёгких путей, так как уже знаем ветвление и оператор case. то есть будет условие, которое проверяет, что строка не обязательно заканчивается точкой. Также учитываем, что точки естьи в самой строке.

Решение №2.

Program slov_v_stroke;
Var stroka:string;
dlina,i,k:integer;
Begin
k:=0; // обнуляем количество строк
write(Введите строку: );
readln(stroka);
dlina:=length(stroka); // определяем длину строки
//если последний символ строки не содержит точки
if stroka[length(stroka)]>. then writeln(Это неправильная строка!)
else
case dlina of
1: writeln(В строке нет слов!); // в единичной строке нет слов
2: begin k:=1; write(Слов в строке=,k); end;
else
begin
k:=1; // изначально, у нас уже есть одно слово
i:=2;
while (idlina) do
begin
if ord(stroka[i])=32 then
// Делаем проверку на лишние пробелы
if (ord(stroka[i])=32) and (ord(stroka[i-1])>32) then
k:=k+1; // увеличиваем количество слов
i:=i+1;
end;
write(Слов в строке=,k); // выводим результат
end;
end;
End.

После изучения этих примеров, можете смело переходить к созданию собственного решения!

Источник: inphormatika.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru