Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Практическая часть.





Задание 1. Наберите заданную программу, выводящую на экран самое длинное слово произвольного предложения, введенного с клавиатуры, и количество символов в нем.

Program dlinnoe_slovo;

var

Predl,dl_slovo: string;

MSlov: array [1..130] of string;

k,ns,i,PDlin,Pn,m,max: integer;

Begin

k:=0;

write ('Введите предложение: ');

read (Predl);

Predl:=' '+Predl;

PDlin:=length (Predl);

For i:=1 to PDlin-1 do

Begin

If (Predl[i]=' ') and (Predl[i+1]<>' ')

then ns:=i+1;

If (Predl[i]<>' ') and

((Predl[i+1]=' ') or (Predl[i+1]='.'))

then

Begin

k:=k+1;

MSlov[k]:=Copy (Predl,ns,i-ns+1);

end;

end;

dl_slovo:= MSlov[1];

max:=length(MSlov[1]);

For i:=1 to k do {открываем цикл по количеству слов}

Begin

m:=length(MSlov[i]);

if m>max then

begin

max:=m;

dl_slovo:= MSlov[i];

end;

end;

writeln(dl_slovo, max:6);

end.

Измените программу таким образом, чтобы на экран выводилось самое короткое слово и его первый символ.

Задание 2. Наберите заданную программу, печатающую на экран все слова произвольного предложения, начинающиеся на букву “а”.

Program slovа_а_1;

var

Predl: string;

MSlov: array [1..130] of string;

k,ns,i,PDlin,Pn: integer;

Begin

k:=0;

write ('Введите предложение: ');

read (Predl);

Predl:=' '+Predl;

PDlin:=length (Predl);

For i:=1 to PDlin-1 do

Begin

If (Predl[i]=' ') and (Predl[i+1]<>' ')

then ns:=i+1;

If (Predl[i]<>' ') and

((Predl[i+1]=' ') or (Predl[i+1]='.'))

then

Begin

k:=k+1;

MSlov[k]:=Copy (Predl,ns,i-ns+1);

end;

end;

For i:=1 to k do {открываем цикл по количеству слов}

if MSlov[i][1]=’а’

{если первый символ i–того слова равен ’а’}

then {то}

writeln(MSlov[i]); {выводим слово}

end.

Измените программу таким образом, чтобы на экран выводились слова, начинающиеся и оканчивающиеся на одну и туже букву.

 

Задание 3. Наберите заданную программу, печатающую на экран слова произвольного текста, имеющие в своей записи хотя бы одну букву “а”.

Program slovа_s_а;

var

Predl: string;

MSlov: array [1..130] of string;

k,ns,i,PDlin,Pn,n: integer;

Begin

k:=0;

write ('Введите предложение: ');

read (Predl);

Predl:=' '+Predl;

PDlin:=length (Predl);

For i:=1 to PDlin-1 do

Begin

If (Predl[i]=' ') and (Predl[i+1]<>' ')

then ns:=i+1;

If (Predl[i]<>' ') and

((Predl[i+1]=' ') or (Predl[i+1]='.'))

then

Begin

k:=k+1;

MSlov[k]:=Copy (Predl,ns,i-ns+1);

end;

end;

 

For i:=1 to k do {открываем цикл по количеству слов}

Begin

n:=0;

For j:=1 to length(MSlov[i]) do

{открываем цикл по количеству символов в i–том слове}

if MSlov[i][j]=’а’

{если j-тый символ i–того слова равен ’а’}



then {то}

n:=n+1; {увеличили счетчик символов 'a'}

if n>0 then writeln(MSlov[i]);

end;

end.

Измените программу таким образом, чтобы на экран выводилось слово с максимальным содержанием букв 'a'.

 

3. Контрольные вопросы.

1. Каким образом изменится алгоритм разбиения текста на слова, если в нем встречаются знаки препинания: запятые, точки с запятой и двоеточия?

2. Чем в алгоритме разбиения произвольного предложения на слова является переменная k?

3. Чем в алгоритме разбиения произвольного предложения на слова является переменная ns?

4. Что изменилось бы в программе задания 2, если бы выводились на экран слова, оканчивающиеся на 'a'?

 

 

Тема: “Подпрограммы-процедуры”

 

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

 

 

План работы.

1. Повторить теорию.

2. Выполнить практическую часть на компьютере, записав ответы в тетрадь.

3. Ответить на контрольные вопросы.

Ход работы.

 

Теория.

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

Подпрограмма-процедура предназначена для выполнения законченной последовательности действий. Любая процедура оформляется аналогично основной программе, т.е. содержит заголовок, разделы описаний и операторов. В отличие от основной программы заголовок в процедуре обязателен.

 

Формат описания процедуры:

 

Procedure <имя процедуры> (<список формальных параметров>);

 
 
Раздел описаний

 


Begin

 
 
Раздел операторов

 


End;

 

Раздел описаний процедуры может содержать подразделы: метки, константы, типы, переменные, процедуры и функции. Раздел описаний в процедуре может отсутствовать.

При работе в программе с процедурами происходит разделение переменных на глобальные и локальные.

Глобальные переменные - это объявленные в разделе описания основной программы переменные, для которых память отводится на весь период выполнения программы.

Локальные переменные - это объявленные в разделе описания подпрограммы переменные, для которых память отводится только на период выполнения подпрограммы. Такие переменные не доступны для операторов основной программы.

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

<имя процедуры> (<список фактических параметров>);

Формальные параметры подпрограммы указывают, с какими параметрами следует обращаться к этой подпрограмме (количество параметров, их последовательность и типы). Они задаются в заголовке подпрограммы в виде списка формальных параметров, разбитого на группы, разделенные “;”. В группу формальных параметров включаются однотипные параметры одной категории.

При обращении к подпрограмме формальные параметры заменяются на соответствующие фактические вызывающей программы или подпрограммы.

 

Пример:

Program p;

Var

a,b:integer;

procedure proc (c,d:integer);

var

i:byte;

begin

{тело процедуры}

end;

begin

a:=3; b:=4;

proc (a*b,2+b); {вызов процедуры}

end.

Глобальные переменные: a,b

Локальные переменные: c,d,i

Формальные параметры: c,d

Фактические параметры: a*b,2+b (в процедуру будут значения: c=12, d=6)

 





Рекомендуемые страницы:




Читайте также:


Воспользуйтесь поиском по сайту:



©2015- 2021 megalektsii.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.