Идет 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

| § 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, с является равнобедренным» для произвольных целых чисел а, Ь, с.

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

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

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