Сайт учителя

Тинькова Е.Н.

Урок 28

 


Программирование линейных алгоритмов

Ключевые слова:

• вещественный тип данных
• целочисленный тип данных
• символьный тип данных
• строковый тип данных
• логический тип данных

Программы, реализующие линейные алгоритмы, являются прос­тейшими. Все имеющиеся в них операторы выполняются последова­тельно, один за другим.
Программируя линейные алгоритмы, рассмотрим более подробно целочисленные, логические, символьные и строковые типы данных.
 

3.3.1. Числовые типы данных

Вы уже знакомы с основными числовыми типами данных integer и real. К ним применимы стандартные функции, часть из которых приведена в табл. 3.3.

Таблица 3.3
 

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

Исследуем работу функций round, int и frас, применив их к некоторому вещественному х. Соответствующая программа будет иметь вид:

program n_3;

var x: real;

begin

writeln ('Исследование функций round, int, frac);
write ('Введите х>>') ;
readln (x);
writeln ('Округление  - ', round(x));
writeln ('Целая часть - ', int(x));
writeln ('Дробная часть - ', frac(x)

end.

Запустите программу несколько раз для каждого х  {10,2; 10,8; -10,2; -10,8}. Что вы можете сказать о типе результата каждой из этих функций?


3.3.2. Целочисленный тип данных

Над целыми числами в языке Паскаль выполняются следующие операции: сложение (+), вычитание (-), умножение (*), получение целого частного (div), получение целого остатка деления (mod) и деление (/). Результаты первых пяти операций — целые числа. Результатом операции деления может быть вещественное число.

Рассмотрим пример использования операций div и mod, записав на языке Паскаль программу нахождения суммы цифр вводимого с клавиатуры натурального трёхзначного числа.
Используем тот факт, что положительное трёхзначное число можно представить в виде следующей суммы: х= а*100 + b*10 + с, где  а,b и c — цифры числа.

program n_4;

var x, a, b, c, s: integer;

begin

writeln ('Нахождение суммы цифр трёхзначного числа');
write ('Введите исходное число>>');
readln (х);
а: =х div 100;
b:=x mod 100 div 10;
с:=x mod 10;
s:=a+b+c;

writeln ('s= ', s)

end.

Определите чему равна сумма цифр числа 123 и числа -123? Совпадают ли ваши результаты с результатами работы программы? Как можно объяснить и ис­править ошибку в программе?


3.3.3. Символьный и строковый типы данных

Значением символьной величины (тип char) в языке Паскаль является любой из символов, который можно получить на экране на­жатием на клавиатуре одной из клавиш или комбинации клавиш, а также некоторых других символов, в том числе и невидимых. Множество таких символов состоит из 256 элементов, каждому из кото­рых согласно используемой кодовой таблице поставлен в соответствие код — число 0 до 255.

Символы, соответствующие первым 32 кодам, являются управляющими, а остальные — изображаемыми. К изображаемым символам относится и пробел, имеющий код 32.

Знакам препинания, знакам арифметических операций, цифрам, прописным и строчным латинским буквам соответствуют коды от 33 до 127. Буквам национального алфавита соответствуют коды с номерами 128 и далее.

В тексте программы константу символьного типа можно задать, заключив любой изображаемый символ в апострофы: '5', 'В', '*'.

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

Чтобы найти код символа, используют функцию ord, где в ка­честве параметра задают символ.

Чтобы по коду узнать символ, используют функцию chr, где в ка­честве параметра указывают код символа.

Значением строковой величины (тип string) является произ­вольная последовательность символов, заключенная в апострофы. В Паскале (как и в алгоритмическом языке) строки можно сцеплять.

Пример. Запишем на языке Паскаль программу, в которой для введённой с клавиатуры буквы на экран выводится её код. Затем на экран выводится строка, представляющая собой последовательность из трёх букв используемой кодовой таблицы: буквы, предшествую­щей исходной; исходной буквы; буквы, следующей за исходной.

program n_5;

var a: char; kod: integer; b: string;

begin

writeln ('Код и строка');
write ('Введите исходную букву»1);
readln (a);
kod:=ord(a);
b:=chr(kod-1)+a+chr(kod+1);
writeln ('Код буквы ', a, '-', kod);
writeln ('Строка: ', b);

end.


3.3.4. Логический тип данных

Как известно, величины логического типа принимают всего два значения; в Паскале это false и true. Эти константы определены так, что false < true.

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

Пример. Напишем программу, определяющую истинность высказывания «Число п является чётным» для произвольного целого числа п.
Пусть ans — логическая переменная, а n — целая переменная.
Тогда в результате выполнения оператора присваивания

ans:=n mod 2 = 0

переменной ans будет присвоено значение true при любом чётном п и false в противном случае.

program n_6;

     var n: integer; ans: boolean;

begin

writeln ('Определение   истинности  высказывания о  чётности  числа');
write ('Введите  исходное  число>>');
readln (n);
ans:=n mod 2 = 0;

writeln ('Число', n, 'является чётным - ', ans);

end.

 

Логическим переменным можно присваивать значения логических выражений, построенных с помощью известных вам логических функций и, или, не, которые в Паскале обозначаются соответственно and, or, not.

Пример. Напишем программу, определяющую истинность высказывания «Треугольник с длинами сторон а, b, с является равнобедренным» для произвольных целых чисел а, b, с.

program n_7;

    var a, b, с: integer;   ans: boolean;

begin

writeln ('Определение истинности высказывания о равнобедренном треугольнике');
write ('Введите значения а, b, с>>');
readln (a, b, с);
ans:=(a=b)   or   (a=c)   or   (b=c);
writeln ('Треугольник с длинами сторон ' , а,  ',', b, ',',  с, '  является равнобедренным - ', ans);

 end.


Вопросы и задания

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


САМОЕ ГЛАВНОЕ

Block title

Вход на сайт

Поиск

Календарь

«  Декабрь 2024  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
3031

Статистика


Онлайн всего: 12
Гостей: 12
Пользователей: 0

Архив записей