Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГР Сухих Р.О..docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
576.53 Кб
Скачать

Задание 1.

Постановка задачи:

Дано четное число N (> 0) и символы C1 и C2. Вывести строку длины N, которая состоит из чередующихся символов C1 и C2, начиная с C1.

Таблица 5 - Таблица внешних спецификаций

Имя переменной

Назначение переменной

Тип переменной

Входные данные

i

c1

c2

N

шаг цикла

первый символ

второй символ

количество символов в строке

integer char

char

integer

Выходные данные

c

Строка, состоящая из символов 1 и 2

string

Расчет контрольных примеров:

  1. Вводим символы C1: a, C2: b и длину строки: 4. Результат «abab»;

  2. Вводим символы C1: d, C2: 3 и длину строки: 7. Результат «d3d3d3»;

Блок-схема:

Рисунок 5 – Блок-схема к заданию №1

Программная реализация:

program laba3_1;

uses

crt;

var

N,i: integer;

c1,c2: char;

c: string;

begin

clrscr;

write(Введите символ C1: ');

readln(c1);

write('Введите символ C2: ');

readln(c2);

write('Введите число N: ');

readln(N);

for i:=1 to N div 2 do

begin

c:=c+c1;

c:=c+c2;

end;

writeln('Полученная строка: ', c);

end.

Задание 2.

Постановка задачи:

Найти самое длинное симметричное слово заданного предложения.

Таблица 4 - Таблица внешних спецификаций

Имя переменной

Назначение переменной

Тип переменной

Входные данные

i

n

k

s

шаг цикла

определение количества букв

счётчик

строка

integer integer

integer

string

Выходные данные

e

С

Количество слов

Самое длинное симметричное слово в строке

integer

string

Расчет контрольных примеров:

  1. Вводим строку: 'Казак умеет летать'. Результат: самое длинное симметричное слово: "Казак";

  2. Вводим строку: 'как казак мыл раму'. Результат: самое длинное симметричное слово: "казак".

Блок-схема:

Рисунок 6 – Блок-схема к заданию №2

Программная реализация:

program laba3_5;

uses

crt;

var

i,e,k,n: integer;

s,c: string;

begin

clrscr;

write('Введите строку S: ');

readln(s);

while s[1]=' ' do

delete(s,1,1);

while s[length(s)]=' ' do

delete(s,length(s),1);

insert(' ',s,length(s)+1);

while length(s)>0 do

begin

n:=pos(' ',s);

inc(e);

if n>length(c) then

begin

for i:=1 to ((n-1) div 2) do

if s[i]<>s[n-i] then k:=k+1;

if k=0 then c:=copy(s,1,n)

else writeln(' ');

end;

k:=0;

//полиндром или нет

delete(s,1,n);

//удаляю слово

while s[1]=' ' do

delete(s,1,1);

end;

writeln('Количество слов=',e);

write('Самое длинное симметричное слово в строке: ',c);

end.

ПРОЦЕДУРЫ И ФУНКЦИИ

Цель работы: изучение правил описания и использования процедур и функций в Паскале, изучение вариантов передачи параметров в процедуры и функции и особенностей локальных и глобальных переменных программы.