Идет k я секунда суток определить. Разработка урока программирование линейных алгоритмов. Символьный и строковый типы данных

Вычислить

Задание 2 (программа 1_2)

    Идет k секунда суток. Определить, сколько целых часов (h) и целых минут (m) и секунд (s) прошло к этому моменту.

    Определить площадь трапеции с основаниями а, b, высотой h и объем усеченного конуса, если считать а, b - площадями оснований.

3. Определить координаты центра тяжести трех материальных точек с массами m 1 ,m 2 ,m 3 и координатами (x 1 ,y 1), (x 2 ,y 2), (x 3 ,y 3).

4. Вычислить по заданному радиусу R объем шара и площадь круга, найти соотношение между ними.

5. Вычислить медианы треугольника по заданным сторонам a, b, c.

6. Вычислить площадь поверхности и объем конуса по заданным радиусам и высоте h.

7. По заданному радиусу найти объем шара и площадь поверхности.

8. Вычислить, какая идет секунда суток при положении стрелок в h часов, m минут и s секунд, а также угол (в градусах) между положением часовой стрелки в начале суток и ее положением в указанный момент.

9. Ввести двузначное целое число х<15. Написать программу перевода его в восьмеричную систему счисления.

10. Ввести координаты двух точек (х 1 , y 1), (x 2 ,y 2). Найти расстояние между ними.

Лабораторная работа 2

Программирование разветвленных алгоритмов. Операторы передачи управления

Структура условного оператора передачи управления:

if (<выражение>) <оператор 1> else <оператор 2>;

(Если) (иначе) - ключевые слова,

где <условие> - это произвольное выражение логического типа, которое может принимать два значения: истина (TRUE) и ложь (FALSE);

<оператор> - любой оператор языка СИ, заканчивается точкой с запятой.

Сокращенная форма условного оператора:

if (<выражение>) <оператор>;

Оператор безусловного перехода: goto <идентификатор-метка>;

Меткой является идентификатор. Метка размещается перед оператором С/С++, к которому выполняется переход и отделяется двоеточием (:).

Пример 1 . Составить программу для начисления базовой зарплаты согласно следующему правилу: если стаж работы сотрудника менее трех лет, то зарплата равна 100$, при стаже работы от трех до 5 лет - 150$, свыше 5 лет зарплата повышается с каждым годом на 10$, причем при стаже, превышающем 20 лет, она составляет 300$.

Для программирования решения этой задачи определим математичес­кую формулировку задачи:

100, если ST < 3;

ZP= 150, если 3 ≤ST  5;

150+ (ST -5)*10, если 5 < ST≤ 20;

300, если ST > 20;

#include

#include

void main ()

{ int ST; //ST- стаж (байтовый (целый) тип беззнаковый)

float ZP; //ZP- зарплата (плавающий тип)

printf ("\n Введите стаж ");

scanf ("%d",&ST);

if (ST<3) ZP = 100;

else if (ST<5) ZP = 150;

else if (ST>=20) ZP=300;

else ZP=150+(ST- 5)*10;

printf ("\n Зарплата = %10.2f$\n",ZP);

Оператор выбора switch позволяет в зависимости от значения ка­кой-либо переменной или выражения (ключа выбора) выполнить те или иные операторы, помеченные соответствующими константами.

Структура оператора:

switch (<выражение>)

case<константа 1>: <группа операторов 1>;

case <константа 2>: <группа операторов 2>;

case <константа N>: <группа операторов N>

default : <операторы>;

}

где <выражение> -выражение (переменная) любого порядкового типа;

<константа> - константа того же типа, что и <выражение>;

<оператор> - произвольный оператор C/C++.

Пример 2.Напечатать в зависимости от числа углов название фигуры (треугольник, четырехугольник, пятиугольник, шестиугольник, многоугольник).

Вариант реализации задачи с применением оператора выбора представлен СА (рис.2,б) и следующей программой:

#include

#include

void main ()

{

int T; // T – число углов

clrscr(); // очистка экрана

printf ("Введите число углов ");

scanf ("%d",&T);

switch (T)

case 1: case 2: printf ("Это не фигура\n "); break;

case 3: printf ("С %d углами - треугольник\n ", T); break;

case 4: printf ("С %d углами - четырехугольник\n ", T); break;

case 5: printf ("С %d углами - пятиугольник\n ", T); break;

case 6: printf ("С %d углами - шестиугольник\n ", T); break;

default : printf ("С %d углами - многоугольник\n ", T);

Задание 1 (программа 2_1)

Вычислить значение функции в зависимости от интервала, в который попадает вводимый с клавиатуры аргумент:

1. Дляt, a t 2 ln t при 1
,

где a=-0.5,b=2 z = 1 при t<1,

e a t cos b t при t>2,

2. Для x,
при x2,

где а=2.3 f = х при 0.3< x  2,

cos(x-a) при x
,

3.Для x, (a+b)/(e x +cosx) при 0  x2.3,

где a=-2.7,b=-0.27 z = (a+b)/(x+1) при 2.3 x5,

e x +sinx при 7
,

4.Для i, a i 4 + b i при i< 10,

где a=2.2,b=0.3. y = tg(i + 0.5) при i = 10,

e 2i +
при i >10,

5. Дляx, x 2 - 7/x 2 при x<1.3,

где a=1.5 y = ax 3 + 7
при 1.3  x3,

lg(x + 7
) при x
,

6. Дляt[-1.4],
при t<0.1,

где a=2.1,b=0.37. z = at + b при 0.1 t 2,

при t
,

7. Для x , a e sin x +2.5 при x<0.3,

где a=1.5. y = e cos x + a при 0.3 x<4,

(sin x)/ (a + e x) при x  4,

8. Для x, y = a/x + b x 2 - c при x
,

где a=1.8,b=-0.5, c=3.5 (a + bx)/
при x>1.2,

9.Для t, t
при t>a,

где a=2.5 z = t sin a t при t=a,

e -at cos a t при t

10. Для x, e - bx sin b x при x<2.3,

где a=1,b=3. y= сos bx при 2.3
,

e -ax cos b x при x

11.Для t, a t 2 – b
при t

где a=1.3,b=6.5 z= a - b при a

a t 2/3 -
при t>b,

12. Для x, |e -2x sin bx| при x >1,

где b=-2.9 y = cos bx при x = 1,

e -x cos bx при x < 1,

13. Для x sin (cos a x)при x >1,

где a=-0.8 z = tg ax при x = 1,

a 2 x при x < 1,

14. Для x, ln bx - 1/(bx+1) при x < 1.3,

где b=1.3. y = bx + 1 при 1.3  x  1.7,

ln bx +1/(bx+1) при x > 1.7,

15. Для x[-1,1], ax 2 +bx 2/3 при x<0.1,

где a=2.5,b=-0.9. z= a x 2 при x=0.1,

b x 2/3 при x>0.1.

16. Ввести координаты точки (x, y). Напечатать, в каком квадранте или на какой оси координат находится эта точка.

17. Ввести радиусы R 1 , R 2 и высоту. Вычислить объем усеченного конуса:
, гдеS- площадь оснований. Если R 1 = R 2 - объем и площадь цилиндра, если R 1 = 0 или R 2 = 0 - объем (hπr 2) и площадь πr(
) поверхности конуса.

18. Ввести с клавиатуры цифру. Определить, какой системе счисления она может принадлежать.

19. Ввести число. Определить, делится ли оно нацело на два, три или пять.

20. Ввести a, b, h. Если h=0, вычислить площадь прямоугольника; при a = b, найти площадь квадрата; в противном случае подсчитать площадь трапеции.

Задание 2 (программа 2_2)

1. Определить остаток от деления на восемь введенного числа х и написать восьмиричную цифру прописью.

2. По цифре, введенной с клавиатуры, напечатать название этой цифры.

3. С клавиатуры ввести число k (1..30). Определить, какому дню недели оно соответствует, если первое число - понедельник.

4. Ввести число и номер месяца. Напечатать дату прописью.

5. Идет k секунда суток. Вычислить, сколько прошло часов и полных минут к этому моменту, при этом согласовать со значением слова (час, часа, часов, минута, минуты, минут).

6. В зависимости от номера (N) типа фигуры, организовать ввод необходимых данных и вычислить при N = 1 - площадь круга, N = 2 - объем шара (4/3πR 3), N=3 -объем цилиндра, N = 4 - площадь поверхности сферы 4πr 2 .

7. Ввести число N (0 ≤ N ≤ 15). Определить и напечатать шестнадцатеричную цифру, ему соответствующую.

8. Для целого числа К (1…99) напечатать фразу « Мне К лет », при определенных значениях К слово «лет» заменить словом «год» или «года».

9. В зависимости от номера (N) типа фигуры, организовать ввод необходимых данных и вычислить при N = 1 - площадь прямоугольника, при N=2 - площадь параллелограмма, при N = 3 - площадь трапеции 1/2(a+b)h. В последнем случае напечатать: является ли трапеция параллелограммом или ромбом.

10. Перевести число 0 ≤ х ≤ 31 в шестнадцатеричную систему счисления.

11. Напечатать прописью остаток от деления любого целого числа на пять.

12. По введенному номеру напечатать нужный цвет в радуге.

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

14. Разработайте программу, которая доказывает, что квадрат двузначного числа k5 (последняя цифра - 5), равен k * ( k + 1) * 100 + 25 (т.е. может быть получен умножением старшей цифры k на следующую по порядку и припиской «25»). Например, 35 * 11 = 3*4*100 + 25.

Для задания 2 номер варианта определяется остатком от деления индивидуалного варианта на число 12.

Лабораторная работа 3

Описание презентации по отдельным слайдам:

1 слайд

Описание слайда:

Центр повышения квалификации «Московский областной центр Интернет-образование» «Программирование линейных алгоритмов на языке Паскаль»

2 слайд

Описание слайда:

Для вывода результатов в Паскале используется оператор: Что из нижеперечисленного не входит в алфавит языка Паскаль? латинские строчные и прописные буквы знак подчеркивания Какая последовательность символов может служить именем в языке Паскаль? print begin readln ДАЛЕЕ служебные слова русские строчные и прописные буквы _mas maS1 d2 2d _mas maS1 d2 2d ДАЛЕЕ write write русские строчные и прописные буквы

3 слайд

Описание слайда:

Подбери верное Раздел объявления переменной Начало программы Заголовок программы Оператор вывода Операция присвоения Оператор ввода Конец программы Тип целых величин Тип вещественных величин readln end program begin:= var integer real writeln var begin:= real program writeln end readln

4 слайд

Описание слайда:

Составить блок схему для сложения чисел А+В, вводимых с клавиатуры НАЧАЛО Ввод А,В S=А+В ВЫВОД S КОНЕЦ program Summa; end. Var a,b,S: integer; begin S= a + b; writeln(‘S=‘, S); readln(a,b);

5 слайд

Описание слайда:

Первая программа: вычислить длину окружности и площадь круга, если r=5,4 writeln ("c =", c:6:4); writeln ("s=", s:6:4) end. Результат работы программы: write("Введите r>>"); readln(r); program n_1; const pi=3.14; var r, c, s: real; begin r:=5.4; c:=2*pi*r; s:=pi*r*r; Улучшенная программа Результат работы программы: Turbo Pascal Version 7.0 c =33.9120 s =91.5624 Turbo Pascal Uersion 7.0 Вычисление длины окружности и площади круга Введите r>> 8.5 c =53.3800 s =226.8650

6 слайд

Описание слайда:

Числовые типы данных Стандартные функции языка Паскаль: Функция Назначение Тип аргумента Тип результата abs(x) Модульx integer, real Такой же, как у аргумента sqr(x) Квадратx integer, real Такой же, как у аргумента sqrt(x) Квадратный корень изx integer, real real round(x) Округлениехдо ближайшего целого real frac(x) Целая частьx real int(x) Дробная частьx real random Случайное число от 0 до 1 - real random(x) Случайное число от 0 доx integer integer

7 слайд

Описание слайда:

Операции div и mod program n_4; var x, a, b, c, s: integer; begin writeln ("Нахождение суммы цифр трёхзначного числа"); write ("Введите исходное число>>"); readln (x); a:=x div 100; b:=x mod 100 div 10; c:=x mod 10; s:=a+b+c; writeln ("s= ", s) end. Трёхзначное число можно представить в виде следующей суммы: x = a·100 + b·10 + c, где а, b, с - цифры числа. Программа нахождения суммы цифр вводимого с клавиатуры целого трёхзначного числа.

8 слайд

Описание слайда:

Символьный и строковый типы данных Функция ord преобразовывает букву в её числовой код. Символы – это все буквы и значки, которые есть на клавиатуре. Для ввода в программу символьных переменных необходимо указать для них символьный тип данных char. Функция chr преобразовывает числовой код символа в сам символ. Значением строковой величины (тип string) является произвольная последовательность символов, заключенная в апострофы. W chr 87 ord W % 37 % 4 52 4 S 83 S var c: string c:= chr(52)+chr(37) с 4%

9 слайд

Описание слайда:

Символьный и строковый типы данных program n_5; var a: char; kod: integer; b: string; begin writeln ("Код и строка"); write ("Введите исходную букву>>"); readln (a); kod:=ord(a); b:=chr(kod–1)+a+chr(kod+1); writeln ("Код буквы ", a, "-", kod); writeln ("Строка: ", b) end. Вывод на экран кода буквы, введённой с клавиатуры Вывод на экран строки из трёх букв. Каких?

10 слайд

Описание слайда:

Исследование функций round, int и frac Выполните программу несколько раз для x {10,2; 10,8; –10,2; –10,8}. Какой будет тип результата каждой из этих функций? program n_3; var x: real; begin writeln ("Исследование функций round, int, frac"); write ("Введите x>>"); readln (x); writeln ("Округление - ", round(x)); writeln ("Целая часть - ", int(x)); writeln ("Дробная часть - ", frac(x)) end. ?

11 слайд

Описание слайда:

НАЧАЛО Ввод x1,x2,y1,y2 ВЫВОД S КОНЕЦ program dlina; end. var x1,x2,y1,y2: integer; begin d=sqrt(sqr(x2-x1))+sqrt(y2-y1)); writeln(‘d=‘, d); write("ВВЕДИТЕ КООРДИНАТУ X1= "); readln(X1); write("ВВЕДИТЕ КООРДИНАТУ Y1= "); readln(Y1); write("ВВЕДИТЕ КООРДИНАТУ X2= "); readln(X2); write("ВВЕДИТЕ КООРДИНАТУ Y2= "); readln(Y2);

12 слайд

Описание слайда:

Вопросы и задания Для заданного x вычислите у по формуле у = х3 + 2,5х2 – х +1. При этом: а) операцию возведения в степень использовать запрещено; б) в одном операторе присваивания можно использовать не более одной арифметической операции (сложение, умножение, вычитание); в) в программе может быть использовано не более пяти операторов присваивания. Подсказка: преобразуйте выражение к следующему виду: y =((x + 2,5)x –1)x +1. По заданным координатам точек А и В вычислите длину отрезка АВ. Известны длины сторон треугольника a, b, c. Напишите программу, вычисляющую площадь этого треугольника. Известны координаты вершин A, B, C треугольника. Напишите программу, вычисляющую площадь этого треугольника. Если сумма налога исчисляется в рублях и копейках, то налоговая служба округляет её до ближайшего рубля (до 50 копеек - с недостатком, свыше 50 копеек (включая 50) - с избытком). Используйте компьютер, чтобы ввести точную сумму налога и вывести, сколько следует уплатить. Исследуйте работу функции random, запустив многократно на выполнение программу: program n_8; var x, n: integer; begin writeln ("Исследование функции random"); randomize (*для генерации различных случайных чисел при каждом запуске программы *); write ("Введите x>>"); readln (x); write ("Введите n>>"); readln (n); writeln ("random(", x, ")=", random(x)); writeln ("random(", x, ")+", n, "=", random(x)+n) end. Как можно получить случайное число из промежутка (0; x)? Как можно получить случайное число из промежутка (0; x]? Как можно получить случайное число из промежутка (n; x + n)? Одна компания выпустила лотерейные билеты трёх разрядов: для молодежи, для взрослых и для стариков. Номера билетов каждого разряда лежат в пределах: для молодёжи - от 1 до 100; для взрослых - от 101 до 200; для стариков - от 201 до 250. С помощью компьютера выберите случайным образом лотерейный билет в каждом разряде. Запишите на языке Паскаль программу, которая для произвольного двузначного числа определяет: а) сумму и произведение его цифр; б) число, образованное перестановкой цифр исходного числа. Запишите на языке Паскаль программу, которая вычисляет сумму кодов букв в слове БАЙТ. Запишите на языке Паскаль программу, которая выводит на экран строку символов, коды которых равны 66, 69, 71, 73, 78. Разработайте программу, которая запрашивает три строковые величины – взаимосвязанные прилагательное, существительное и глагол, а затем печатает все варианты фраз с использованием введённых слов. Даны значения целочисленных переменных: a = 10, b = 20. Чему будет равно значение логической переменной rez после выполнения операции присваивания? а) rez:=(a=10) or (b>10) б) rez:=(a>5) and (b>5) and (a<20) and (b<30) в) rez:=((not(a<15)) or (b>20) Составьте программу, вводящую true, если высказывание является истинным, и false в противном случае: а) сумма цифр трёхзначного числа x является чётным числом; б) треугольник со сторонами a, b, с является разносторонним. Идёт k-я секунда суток. Разработайте программу, которая по введённой k-й секунде суток определяет, сколько целых часов h и целых минут m прошло с начала суток. Например, если k =13257=3 х 3600 + 40 х 60 + 57, то h =3 и m = 40. Выведите на экран фразу: It is … hours … minutes. Вместо многоточий программа должна выводить значения h и m, отделяя их от слов ровно одним пробелом. Запишите на языке Паскаль программу, реализующую алгоритм работы кассира, выдающего покупателю сдачу (s) наименьшим количеством банкнот по 500 (k500), 100 (k100), 50 (k50) и 10(k10) рублей. Пример входных данных Пример выходных данных xa=2 ya=1 xb= 10 yb= 7 | AB | = 10.0 Пример входных данных Пример выходных данных a =3 b =4 с=5 s = 6.0 Пример входных данных Пример выходных данных xa = 2 ya = 1 xb = 6 yb = 5 xc = 10 yc = 1 s = 16.0 Пример входных данных Пример выходных данных 845 Следует сдать: банкнот по 500 руб. – 1 шт. банкнот по 100 руб. – 3 шт. банкнот по 50 руб. – 0 шт. банкнот по 10 руб. – 4 шт. Пример входных данных Пример выходных данных ЗЕЛЁНЫЕ ЛИСТЬЯ РАСПУСКАЮТСЯ ЗЕЛЁНЫЕ ЛИСТЬЯ РАСПУСКАЮТСЯ ЗЕЛЁНЫЕ РАСПУСКАЮТСЯ ЛИСТЬЯ ЛИСТЬЯ ЗЕЛЁНЫЕ РАСПУСКАЮТСЯ ЛИСТЬЯ РАСПУСКАЮТСЯ ЗЕЛЁНЫЕ РАСПУСКАЮТСЯ ЗЕЛЁНЫЕ ЛИСТЬЯ РАСПУСКАЮТСЯ ЛИСТЬЯ ЗЕЛЁНЫЕ Пример входных данных Пример выходных данных 13 257 It is 3 hours 40 minutes.

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

Урок 26
§ 3.3. Программирование линейных алгоритмов

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

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

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

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

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

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

Таблица 3.3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

ans:=n mod 2 = 0

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

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

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


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

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

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

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

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

При этом:

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

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

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

Подсказка . Расстояние d между точками А (х а, у а) и В (х b , у b) выражается формулой .

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

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

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

7. Исследуйте работу функции random, запустив многократно на выполнение программу:

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

Как можно получить случайное число из интервала (0, x]?

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

8. Одна компания выпустила лотерейные билеты трёх разрядов: для молодежи, для взрослых и для пенсионеров. Номера билетов каждого разряда лежат в пределах:

для молодёжи - от 1 до 100;
для взрослых - от 101 до 200;
для пенсионеров - от 201 до 250.

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

9. Запишите на языке Паскаль программу, которая для произвольного натурального двузначного числа определяет:

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

10. Запишите на языке Паскаль программу, реализующую алгоритм работы кассира, выдающего покупателю сдачу (s) наименьшим возможным количеством банкнот по 500 (k500), 100 (klOO), 50 (k50) и 10 (klO) рублей.

11. Идёт k -я секунда суток. Разработайте программу, которая по введённой k -й секунде суток определяет, сколько целых часов h и целых минут m прошло с начала суток. Например, если k = 13 257 = 3 3600 + 40 60 + 57, то h = 3 и m = 40.

Выведите на экран фразу:

It is ... hours ... minutes

.

Вместо многоточий программа должна выводить значения hum, отделяя их от слов ровно одним пробелом.

12. Запишите на языке Паскаль программу, которая вычисляет сумму кодов букв в слове «БАЙТ».

13. Запишите на языке Паскаль программу, которая формирует и выводит на экран строку символов, коды которых равны 66, 69, 71, 73, 78.

14. Разработайте программу, которая запрашивает три строковые величины - взаимосвязанные прилагательное, существительное и глагол, а затем выводит все варианты фраз с использованием введённых слов.

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

а)rez:=(а=10) or (b>10)
б)rez: = (a>5) and (b>5) and (a<20) and (b<30)
в)rez: = (not(a<15)) or (b>20)

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

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

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

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

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

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 будет присвоено значение true при любом чётном n и false в противном случае.


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

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

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

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

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