
Задание 1.
Постановка задачи:
Дано четное число N (> 0) и символы C1 и C2. Вывести строку длины N, которая состоит из чередующихся символов C1 и C2, начиная с C1.
Таблица 5 - Таблица внешних спецификаций
|
Имя переменной |
Назначение переменной |
Тип переменной |
Входные данные
|
i c1
c2
N |
шаг цикла
первый символ
второй символ
количество символов в строке |
integer char
char
integer |
Выходные данные |
c |
Строка, состоящая из символов 1 и 2 |
string |
Расчет контрольных примеров:
Вводим символы C1: a, C2: b и длину строки: 4. Результат «abab»;
Вводим символы 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 |
Расчет контрольных примеров:
Вводим строку: 'Казак умеет летать'. Результат: самое длинное симметричное слово: "Казак";
Вводим строку: 'как казак мыл раму'. Результат: самое длинное симметричное слово: "казак".
Блок-схема:
Рисунок 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.
ПРОЦЕДУРЫ И ФУНКЦИИ
Цель работы: изучение правил описания и использования процедур и функций в Паскале, изучение вариантов передачи параметров в процедуры и функции и особенностей локальных и глобальных переменных программы.