Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Тема: «Символьный тип данных»

Поиск

 

Диапазон значений: значением переменной символьного типа может быть любой символ буквы, цифры, знаки операций, скобки, пробелы и специальные символы. Каждому символу алфавита соответствует индивидуальный код от 0 до255.

Наиболее распространенной международной согласованной системой кодирования всех символов является система ASCII. Символы с кодами 0 до 127 представляют так называемую основную таблицу кодов ASCII. Эта часть идентична на всех IBM-компьютерах. Коды с символами от 128 до 255 представляют национальную часть.

Так как символы языка упорядочены, то к символьным данным применимы операции сравнения. Операция сравнения осуществляется следующим образом: из двух символов меньше тот, который встречается в таблице раньше. Функция ORD от величины типа Char дает код соответствующего символа. Величины символьного типа сравниваются по своим кодам.

Пример определения символьного типа в программе:

Var word: Char;

 

Примеры решений задач

1. Программа проверки введения клавиши ‘ Y ’.

Program keyp;

Var ch: char;

Begin

   Repeat

              Readln(ch);

   Until (ch=’y’) or (ch=’Y’)

End.

2. Программа вывода последовательностей букв.

Program abc_xyz;

Var c,d: char;

Begin

For c:=’a’ to ‘z’ do

   Begin

                          For d:=’a’ to c do write(d);

                          Writeln(‘ ‘)

              end

end.  


Список задач

1. Удалить группу символов, расположенных между круглыми скобками включая сами скобки.

2. Дано натуральное число n и n символов. Подсчитать, сколько раз среди данных символов встречается символ "+" и сколько раз символ "*".

3. Подсчитать общее число вхождений символов "+", "-", "*" в последовательности n символов.

4. Выделить символы, заключённые в фигурные скобки.

5. Удалить символы, заключённые в фигурные скобки.

6. Переставить местами группы символов While и Do.

7. Переставить местами группы символов Repeat и Until.

8. Подсчитать наибольшее число букв а, идущих подряд в данной последовательности символов.

9. Вычислить s- сумму порядковых номеров всех букв, входящих в слово SUM.

10. Напечатать текст, образованный литерами с порядковыми номерами 65, 71 и 69.

11. Если в заданный текст входит каждая из букв слова key, тогда напечатать yes, иначе no.

12. Напечатать заданный текст, удалив из него лишние пробелы, т.е. из нескольких подряд идущих пробелов оставить только один.

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

а) текст содержит (помимо букв) только одну цифру причём её числовое значение равно длине текста;

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

14. Логической переменной b присвоить значение true, если между литерами 'a' и 'z' нет иных символов, кроме строчных латинских букв, и значение false иначе.


Практическая работа № 7

Тема: «Функции и процедуры»

Вспомогательные алгоритмы организуются двумя способами в зависимости от использования:

1) ПРОЦЕДУРЫ:

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

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

За заголовком могут идти такие же разделы, что и в основной программе. В отличии от основной программы процедура завершается не точкой, а точкой с запятой.

Procedure < имя процедуры >[(< аргументы >: < тип аргументов>]; Var <значение>:< тип значения >])];

Var < переменная 1>[,< переменная 2>,...]: тип;

Begin

< тело процедуры>;

End;

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

2) ФУНКЦИИ:

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

а) заголовок состоит из слова function, за которым следует имя функции, далее в круглых скобках - список формальных параметров, затем через двоеточие записывается тип функции - тип возвращаемого параметра. Функ­ция может возвращать параметры следующих типов: любого порядкового, любого вещественного, стандартного строкового и символьного.

б) в теле функции хотя бы раз имени функции должно быть присвоено значение.

Function < имя функции >[(< аргументы >: < тип аргументов>):< тип значения функции>];

Var < переменная 1>[,< переменная 2>,...]: тип;

Begin

 <тело функции>;

 <имя функции>:=<выражение значение функции>;

End;

 

Примеры решений задач.

1. Пример функции для вычисления факториала.

Function Fac to rial(N: Byte) :Longint;

Var

   Fact: longint;

   I: byte;

Begin

   Fact:=n;

   For i:=n-1 downto 2 do

              Fact:=fact*i;

   Fac to rial:=fact;

End;

Вариант 1. Использование процедуры без параметров.

Program Square1;

Var АВ, ВС, СD, DA, DB, a, b, c, p, s, S1, S2: Real;

Procedure geron;

Begin

p:= (a+b+c)/2; s:= sqrt(p*(p–a)*(p–b)*(p–a));

End;

Begin

WriteLn (‘Введите длины сторон АВ, ВС, СD, DA, DB’);

ReadLn (AB, ВС, СD, DA, DB);

a:= AB; b:=DB; c:=DA;

geron; S1:=s;

a:= BC; b:=CD; c:=DB;

geron; S2:=s;

WriteLn (‘Площадь равна:’, S1+S2)

End.

АВ, ВС, СD, DA, DB, a, b, c, p, s, S1, S2 – глобальные переменные;

 

Вариант 2. Использование процедуры без параметров.

Program Square2;

Var АВ, ВС, СD, DA, DB, a, b, c, s, S1, S2: Real;

Procedure geron;

Var p:Real;

Begin

p:= (a+b+c)/2; s:= sqrt(p*(p–a)*(p–b)*(p–a));

End;

Begin

WriteLn (‘Введите длины сторон АВ, ВС, СD, DA, DB’);

ReadLn (AB, ВС, СD, DA, DB);

a:= AB; b:=DB; c:=DA;

geron; S1:=s;

a:= BC; b:=CD; c:=DB;

geron; S2:=s;

WriteLn (‘Площадь равна:’, S1+S2)

End.

АВ, ВС, СD, DA, DB, a, b, c, s, S1, S2 – глобальные переменные;

p – локальная переменная.

 

Вариант 3. Использование процедуры с параметрами.

Program Square3;

Var АВ, ВС, СD, DA, DB, s, S1, S2: Real;

Procedure geron (a, b, c);

Var p:Real;

Begin

p:= (a+b+c)/2; s:= sqrt(p*(p–a)*(p–b)*(p–a));

End;

Begin

WriteLn (‘Введите длины сторон АВ, ВС, СD, DA, DB’);

ReadLn (AB, ВС, СD, DA, DB);

geron (AB, DB, DA); S1:=s;

geron (BC, CD, DB); S2:=s;

WriteLn (‘Площадь равна:’, S1+S2)

End.

АВ, ВС, СD, DA, DB – фактические параметры;

a, b, c – формальные параметры.

 

Вариант 4. Использование процедуры с возвращением значения.

Program Square4;

Var АВ, ВС, СD, DA, DB, S1, S2: Real;

Procedure geron (a, b, c; Var s:Real);

Var p:Real;

Begin

p:= (a+b+c)/2; s:= sqrt(p*(p–a)*(p–b)*(p–a));

End;

Begin

WriteLn (‘Введите длины сторон АВ, ВС, СD, DA, DB’);

ReadLn (AB, ВС, СD, DA, DB);

geron (AB, DB, DA, S1);

geron (BC, CD, DB, S2);

WriteLn (‘Площадь равна:’, S1+S2)

End.

 

Вариант 5. Использование процедуры-функции.

Program Square5;

Var АВ, ВС, СD, DA, DB, S: Real;

Function geron (a, b, c: Real): Real;

Var p:Real;

Begin

p:= (a+b+c)/2; geron:= sqrt(p*(p–a)*(p–b)*(p–a));

End;

Begin

WriteLn (‘Введите длины сторон АВ, ВС, СD, DA, DB’);

ReadLn (AB, ВС, СD, DA, DB);

S:= geron (AB, DB, DA) + geron (BC, CD, DB);

WriteLn (‘Площадь равна:’, S)

End.

 

Список задач

1. Даны действительные числа s, t. Получить:

2. Даны действительные числа s, t. Получить:

3. Даны действительные числа a, b, c. Получить:

4. Даны действительные числа a, b. Получить:

u=min (ab), v=min (ab, a+b), f= min (u+v2,3.14)

5. Даны натуральные числа n, m, целые числа a1, a2,..., an, b1,..., bm, c1,..., с10. Получить: L = min (b1, …, bm) + min (a1, …, am) + min (c1, …, c10).

6. Даны натуральные числа k, l, m, действительные числа x1,..., xk, y1,..., yl, z1,..., zm. Получить L = max(y1,…, yl) + max(z1,…, zm), если max(x1,…, xk) > 30.

7. Дано натуральное число n. Среди чисел 1, 2, 3,..., n найти все те, которые можно представить в виде сумм квадратов двух натуральных чисел. Определить процедуру, позволяющую распознавать полные квадраты.

8. Даны действительные числа x1, y1, x2, y2,..., x10, y10. Найти периметр десятиугольника, вершины которого имеют соответственно координаты (x1, y1), (x2, y2),..., (x10, y10). Определить процедуру вычисления расстояния между двумя точками, заданными своими координатами.

9. Даны действительные числа a, b, c, d, е. Найти площадь пятиугольника. Определить процедуру вычисления площади треугольника по трём сторонам.

10. Даны натуральное число n, действительные числа x1, y1, x2, y2,..., xn, yn. Найти площадь n -угольника, вершины которого при некотором последовательном обходе имеют координаты (x1, y1), (x2, y2),..., (xn, yn). Определить процедуру вычисления площади n-угольника по координатам его вершин.

11. Дано натуральное число n. Выяснить, имеются ли среди чисел n, n+1,..., 2n близнецы, т.е. простые числа, разность между которыми равна. Определить процедуру, позволяющую распознать простые числа.

12. Составить процедуру, результатом работы которой является истинное значение, если символ, заданный при обращении к процедуре, буква, и ложное значение в противном случае.

13. Составить процедуру, результатом работы которой является символ, заданный при обращении к процедуре, если этот символ не является буквой, и соответствующая строчная (малая) буква в противном случае.

14. Составить процедуру, заменяющую в исходной строке символов все единицы нулями и все нули единицами. Замена должна выполняться, начиная с заданной позиции строки.


Практическая работа № 8

 



Поделиться:


Последнее изменение этой страницы: 2021-07-18; просмотров: 154; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.144.239 (0.006 с.)