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

Краткие теоретические сведения.

Алгоритмические языки: обработка массивов


Задание 1. Символьные типы данных. Работа со строками

Краткие теоретические сведения.

Символьный тип (char) представляет собой тип данных, предназначенных для хранения одного символа (буквы, знака или кода).

Функции над символьными переменными:

chr(x) - определение символа из набора символов по порядковому номеру;

ord(x) - определение порядкового номера символа в наборе символов;

upcase(x) - преобразование строчных букв в прописные;

pred(x) - определение предыдущего элемента;

succ(x) - определение последующего элемента.

Тип данных string (строка) специально предназначен для обработки строк (цепочек символов). Переменная типа string состоит из элементов типа char. Переменные типа string могут быть объявлены следующим образом:

var Имя_переменной1: string;

Имя_переменной2: string[n];

Переменная типа string объявляется, как правило, путем указания имени переменной, зарезервированного слова string и указания (в квадратных скобках) максимального размера (длины) строки, которая может храниться в этой переменной. Если максимальный размер строки не указан, то он автоматически принимается равным 255 - максимально возможная длина строки.

Стандартные процедуры и функции для строк:

· функция Length - определение фактической длины текстовой строки, хранящейся в указанной переменной;

· функция UpCase - преобразование символа любой литеры из строчного в прописной;

· функция Copy - копирование фрагмента некоторой строки из одной переменной в другую;

· функция Pos - осуществление в некоторой строке поиска определенного фрагмента;

· функция Concut - соединение строк;

процедуры Insert и Delete - вставка фрагмента из одной строки в другую, удаление фрагмента из строки[1-8].

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

Дана последовательность слов; между соседними словами – запятая, за последним словом – точка. Напечатать эту же последовательность слов, но удалив из неё повторные вхождения слов. Составить блок схему алгоритма и программу.

 

Листинг программы

 

uses crt;

var str:array[1..10] of string; - массив для слов

Slovo,st:string; - строка предложения

i,j,n,k:integer; - вспомогательные переменные

begin

ClrScr;

Writeln(' Programma ydalyaet povtornoe vhojdenie slov ');

Writeln;

Writeln('Vvedite posledovatelnost slov v formate: <>,<>,<>.'); - формат ввода слов в программе

Write('Vashi slova: ');

Readln(Slovo);

if Length(Slovo)<1 then - проверка на ввод слов

begin

Writeln('Nujno vvesti slovo!');

Halt;

end;

j:=0; i:=1; k:=1; n:=1; - н.у. для переменных

while i<=Length(Slovo) do - цикл в котором слова из предложения заносятся в массив begin строк

n:=i;

while (Slovo[i]<>',')and(Slovo[i]<>'.') do begin inc(i); inc(j); end;

str[k]:=Copy(Slovo, n, j); - занесение в массив слова

j:=0;

inc(k);

inc(i);

end;

str[k]:='.';

for i:=1 to k-1 do - цикл в котором происходит сравнение и удаление

for j:=(i+1) to k-1 do begin одинаковых слов в предложении

if str[i]=str[j] then begin

str[j]:='';

end;

end;

st:='';

for j:=1 to k-1 do begin - формирование предложения из неповторяющихся слов

if (str[j]<>'') then st:=st+str[j]+',';

end;

delete(st,Length(st),1);

st:=st+'.';

writeln;

writeln('Posledovatelnost');

write('bez povtoreniy:',st); - вывод результата

readln;

end.


Блок-схема алгоритма программы.

 

     
 

 


Рис.1 Блок-сема программы задания 1.


Результаты работы программы.

 

 

Задание 2. Организация программ с использованием процедур и функций

Краткие теоретические сведения.

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

procedure Имя_процедуры (Список параметров);

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

Имя_процедуры (Список параметров);

Параметры, содержащиеся в Списке параметров при вызове процедуры, называются фактическими.

Функции - это процедуры особого характера, результатом работы которых является некоторое значение, подобное переменной. Результат работы функции присваивается имени функции. Общая структура функции совпадает со структурой процедуры, за исключением заголовка. Заголовок функции имеет следующий вид:

Function Имя_функции (Список параметров): Тип_результата;

Процедуры и функции помещаются в главной программе после раздела var и перед bеgіn основного блока программы[1-8].

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

По вещественному числу а>0 вычислить величину

 

 

Составить блок схему алгоритма и программу.

Листинг программы.

 

uses crt;

var t:real; - вспомогательные переменные

st1,st2,st3:real;  - вспомогательные переменные

a,a2,a3:real;  - промежуточные переменные

t1,t2,t3:real; - вспомогательные переменные

Function pow1(x, v: real): real; - функция для возведения числа x в степень v

Begin

if (v = 0.0) then - проверка условия v>0

pow1:= 1

else

if (x = 0.0) then - - проверка условия x<>0

pow1:= 0

else

if (x > 0.0) then

pow1:= exp(v*ln(x)) - вычисление числа в заданной степени

else

if (odd(trunc(v))) then

pow1:= -exp(int(v)*ln(-x))

else

pow1:= exp(int(v)*ln(-x));

End;

BEGIN

clrscr;

st1:=1/3;

st2:=1/6;

st3:=1/7;

writeln('Format vvoda chisla: *.*');

write('Vvedite vewestvennoe chislo "a":');

readln(a);

a2:=a*a+1;  - промежуточные вычисления

a3:=3+a;  - промежуточные вычисления

t1:= pow1(a,st1);

t2:= pow1(a2,st2);

t3:= (1+pow1(a3,st3));

t:= (t1-t2) / t3;  - вычисление заданной формулы

writeln;

write('Otvet: t=',t); - вывод результата

readln;

END.


Блок-схема алгоритма программы.

             
 
   
 

 


Рис.2 Блок-сема программы задания 2.

 

Результаты работы программы.

 

 


Задание 3. Работа с файлами

Поделиться:





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



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...