Информатика и ИКТ
9 класс

       

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

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

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

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

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

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

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

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


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

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

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

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

Рассмотрим пример использования операций div и mod, записав на языке Паскаль программу нахождения суммы цифр вводимого с клавиатуры целого трёхзначного числа.

Используем тот факт, что трёхзначное число можно представить в виде следующей суммы: х = а•100 + Ь•10 + с, где а, Ь, с — цифры числа.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пусть ans — логическая переменная, а n — целая переменная. Тогда в результате выполнения оператора присваивания

ans:=n mod 2=0

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


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

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

Самое главное

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

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

  1. Для заданного х вычислите у по формуле у = x3 + 2,5x2 — х + 1.

    При этом:

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

    Подсказка: преобразуйте выражение к следующему виду: у = ((х + 2,5)х - 1)х + 1.

  2. По заданным координатам точек A и В вычислите длину отрезка АВ.

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

  4. Известны координаты вершин А, В, С треугольника. Напишите программу, вычисляющую площадь этого треугольника.

  5. Если сумма налога исчисляется в рублях и копейках, то налоговая служба округляет её до ближайшего рубля (до 50 копеек — с недостатком, свыше 50 копеек (включая 50) — с избытком). Используйте компьютер, чтобы ввести точную сумму налога и вывести, сколько следует уплатить.
  6. Исследуйте работу функции random, запустив многократно на выполнение программу:

    Как можно получить случайное число из промежутка (О; х)?

    Как можно получить случайное число из промежутка (О; х)?

    Как можно получить случайное число из промежутка (n; х + n)?

  7. Одна компания выпустила лотерейные билеты трёх разрядов: для молодежи, для взрослых и для стариков. Номера билетов каждого разряда лежат в пределах:
      для молодёжи — от 1 до 100;
      для взрослых — от 101 до 200;
      для стариков — от 201 до 250.

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

  8. Запишите на языке Паскаль программу, которая для произвольного двузначного числа определяет:
      а) сумму и произведение его цифр;
      б) число, образованное перестановкой цифр исходного числа.
  9. Запишите на языке Паскаль программу, реализующую алгоритм работы кассира, выдающего покупателю сдачу (s) наименьшим количеством банкнот по 500 (k500), 100 (k100), 50 (k50) и 10 (&10) рублей.

  10. Идёт k-я секунда суток. Разработайте программу, которая по введённой k-й секунде суток определяет, сколько целых часов h и целых минут m прошло с начала суток. Например, если k = 13 257 = 3 • 3600 + 40 • 60 + 57, то h = 3 и m = 40. Выведите на экран фразу: It is ... hours ... minutes. Вместо многоточий программа должна выводить значения k и m, отделяя их от слов ровно одним пробелом.

  11. Запишите на языке Паскаль программу, которая вычисляет сумму кодов букв в слове БАЙТ.
  12. Запишите на языке Паскаль программу, которая выводит на экран строку символов, коды которых равны 66, 69, 71, 73, 78.
  13. Разработайте программу, которая запрашивает три строковые величины — взаимосвязанные прилагательное, существительное и глагол, а затем печатает все варианты фраз с использованием введённых слов.

  14. Даны значения целочисленных переменных: а = 10, b = 20. Чему будет равно значение логической переменной rez после выполнения операции присваивания?

  15. Составьте программу, вводящую true, если высказывание является истинным, и false в противном случае:
      а) сумма цифр трёхзначного числа х является чётным числом;
      б) треугольник со сторонами а, Ъ, с является разносторонним.

Рейтинг@Mail.ru