MaxEdu.ru
» » » Работа с текстовыми строками, двумерными массивами, файловыми структурами данных
Вернуться назад

Работа с текстовыми строками, двумерными массивами, файловыми структурами данных

Оглавление
1 Задание №1.
1.1 Блок-схема программы.
1.2 Работа программы
2 Задание №2.
2.1 Блок-схема программы
2.2 Работа программы.
3 Задание №3.
3.1 Блок-схема программы
3.2 Работа программы
4 Задание №4.
4.1 Работа программы
5 Задание №5.
5.1 Блок-схема программы
5.2 Работа программы
6 Заключение.
7 Список используемой литературы.
8 Приложения А
9 Приложение Б
10 Приложение В
11 Приложение Г
12 Приложение Д

1 Задание №1
Подсчитать количество слов последовательности, начинающихся с большой буквы и оканчивающихся цифрой. Напечатать слова, содержащие задаваемую цепочку символов и хотя бы один знак.
1.1 Блок-схема программы


Работа программы
Основное тело программы.
Begin
Задаем переменные, которая будет обозначать о наличии введенного текста и признака продолжения работы программы.
Vvod:=False;
Cont:=True;
while Cont do
Begin
Очмщаем экран для удобства ввода и вывода информации.
clrscr;
Выводим меню с номерами команд, которое можно увидеть на рисунке 1.
Рисунок 1 – главное меню первой программы.
menu;
write('Vvedite komandu: ');
Считываем команду в переменную Rem.
readln(Rem);
Распознаем команду и выберем необходимые функции для выполнения в соответствии с введенном знаком.
case Rem of
'0': Cont:=False;
'1': begin
Считываем введенную строку в переменную Txt и присваиваем Vvod значение True, показывая, что текст введен.
writeln('Text:');
readln(Txt);
Vvod:=True;
end;
'2': begin
Если текст не введен то выводится соответствующее сообщение, в противном случае запускается функция вывода слова с максимальным количеством букв, расположенных в алфавитном порядке.
if Not Vvod then
writeln('Ne vveden text')
else
alfslovo(Txt);
end;
'3': begin
Аналогично предыдущему, только запускается функция подсчета количества симметричных слов больше чем два знака.
if Not Vvod then
writeln('Ne vveden text')
else
colsimmslovo(Txt);
end;
'4': begin
Вывод на экран введенной строки, если же она не введены, выводится соответствующее сообщение.
if Not Vvod then
writeln('Ne vveden text')
else
writeln(Txt);
end
else
Если переменная Rem не удовлетворяет предыдущим условиям, то выводится сообщение о том что введена неизвестная команда.
writeln('Neizvestnaya komanda');
end;
Если программа все еще работает, то выводится предупреждающее сообщение о том что после нажатия клавиши ENTER необходимо будет ввести следующую команду.
if Cont then
begin
write('Nagmite ENTER dlya vvoda sleduyuschei komandy... ');
readln;
end
else
clrscr;
end;
end.
Процедура для нахождения слова с максимальным количеством букв, находящихся в алфавитном порядке.
Она получает в качестве параметра строку S и считает в ней слова, в которых латинские буквы расположены по алфавиту и печатает такое слово, в котором максимально количество букв.
procedure alfslovo(S: Stroka250);
var
Если переменная F становится True, то это показывает что найдено новое слово.
F: boolean;
Len: Byte;
I: Byte;
Counter: Byte;
FSlovo, Buf: Slovo;
Index, L: Byte;
MaxCol: Byte;
begin
Len:=Length(S);
Вставляем в конец строки пробел, если его там нет.
if S[Len]<>' ' then
begin
S:=S+' ';
Inc(Len);
end;
F:=False;
MaxCol:=0;
for I:=1 to Len do
if S[I]<>' ' then
begin
Если находим начало нового слова, тогда устанавливаем признак нового слова, запоминаем номер символа начала слова в строке в переменную Index и вводим начальную длину слова в L.
if F=False then
begin
F:=True;
Index:=I;
L:=1;
end
else
Увеличиваем длину до тех пор, пока не находим пробел.
Inc(L);
end
else
Если i-й символ пробел, то сбрасываем признак слова, копируем слово в переменную Buf и длину строки в нулевую ячейку.
if F=True then
begin
F:=False;
Buf:=Copy1(S, Index, L);
Buf[0]:=char(L);
Следующая процедура проверяет слово. Если буквы расположены в алфавитном порядке, то возвращает True иначе False.
if alforder(Buf, Counter) then
begin
Если в слове больше символов, чем в максимальном, то заносим слово в Fslovo и колличество букв в MaxCol.
if Counter>MaxCol then
begin
FSlovo:=Copy1(S, Index, L);
FSlovo[0]:=char(L);
MaxCol:=Counter;
end;
end;
end;
Если таких слов нет то выводим сообщение об этом, иначе выводим слово.
if MaxCol=0 then
writeln('Net podhodyaschi slov v texte')
else
writeln(FSlovo, ' kol-vo bukv: ', MaxCol);
end;
Функция alforder получает в качестве параметров строку S1, если в строке латинские буквы расположены по алфавиту, то функция вернет True иначе False. Count – количество латинских букв в строке.
function alforder(Sl: Slovo; var Count: Byte): Boolean;
var
I, L: Byte;
F: Boolean;
Buf: Char;
begin
L:=Length(Sl);
Сбрасываем начальное количество букв в строке.
Count:=0;
Находим в цикле количество латинских букв в строке и приводим все заглавные буквы к строчному виду.
for I:=1 to L do
begin
if (isletter(Sl[I])) then
Inc(Count);
if (Sl[I]>='A') and (Sl[I]Sl[I+1] then
begin
F:=False;
break;
end;
alforder:=F;
end;
end;
Процедура colsimmsolvo получает в качестве параметра строку S, и считает в ней симметричные слова, выводит их на экран и выводит количество найденных симметричных слов.
procedure colsimmslovo(S: Stroka250);
var
F: boolean;
Len: Byte;
I: Byte;
Counter: Byte;
Buf: Slovo;
Index, L: Byte;
MaxCol: Byte;
begin
Len:=Length(S);
Заносим в конец строки пробел, если его там нет.
if S[Len]<>' ' then
begin
S:=S+' ';
Inc(Len);
end;
За F обозначаем флаг нахождения слова, F=true –найдено новое слово. И сбрасываем начальное значение количества симметричных слов.
F:=False;
Counter:=0;
writeln('Spisok simmetrichnyh slov iz bolshe chem 2 znaka:');
Начинаем поиск симметричных слов в строке.
for I:=1 to Len do
В случае, если i-й символ не пробел, устанавливаем флаг нового слова, запоминаем начало нового слова, и сбрасываем начальное значение длинны.
if S[I]<>' ' then
begin
if F=False then
begin
F:=True;
Index:=I;
L:=1;
end
else
Inc(L);
end
else
Иначе, если установлен признак нового слова, то сбрасываем его. Если длинна слова больше двух символов, то копируем слово в буффер.
if F=True then
begin
F:=False;
if L>2 then
begin
Buf:=Copy(S, Index, L); {kopiruem slovo v Buf}
Buf[0]:=char(L);
Далее функцией проверяем слово на симметрию, и если оно симметрично, то увеличиваем счетчик на единицу, и выводим это слово на экран.
if simmetr(Buf) then
begin
Inc(Counter);
writeln(Buf);
end;
end;
end;
writeln('Kol-vo naidennyh slov: ', Counter);
end;
Процедура проверки словва на симметричность.
function simmetr(S: Slovo):boolean;
var
L, I, R: Byte;
F: Boolean;
Begin
Начинаем проверять симметричные относительно центра символы. Если они совпадают, то функции присваивается True. Если хоть один символ не сходится, то программа выходит из цикла и функции присваивается значение False.
L:=Length(S);
R:=L div 2;
F:=True;
for I:=1 to R do
if S[I]<>S[L-I+1] then
begin
F:=False;
break;
end;
simmetr:=F;
end;

Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать полную версию
Курсовые работы по информатике Оглавление 1 Задание №1. 1.1 Блок-схема программы. 1.2 Работа программы 2 Задание №2. 2.1 Блок-схема программы 2.2 Работа программы. 3 Задание №3.
Оценок: 274 (Средняя 5 из 5)

Специалисты RetsCorp работают в digital-сфере более 7 лет. За это время мы разработали более 500+ успешных проектов. Основываясь на своем опыте и знании рынка, мы с уверенностью можем сказать, что будет работать, а что — нет. Заказывая создание лендинга для бизнеса в нашей студии, вы получаете работающие решения, необходимые именно вашему бизнесу.

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

© 2014 - 2022 MaxEdu.ru