Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1.11.2012.docx
Скачиваний:
9
Добавлен:
26.11.2019
Размер:
329.7 Кб
Скачать

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

type week_day= (mon, tue, wed, thu, fri, sat, sun) ;

var day:week_day ;

S,k:byte;

begin

S:=0;

for day:=mon to sun do

begin

case day of

mon,wed: k:=6;

tue,fri:k:=8;

thu,sat:k:=4

else

k:=0;

end;

S:=S+k;

end;

writeln('s=',S);

Readln

end.

Пример 2. Поменять значения переменных местами.

Решение задачи без использования дополнительной переменной:

var x,y:integer;

begin

writeln(‘введите x y’);

Readln(x,y);

x:=x+y ;

y:=x-y;

x:=x-y;

writeln('x=',x);

writeln('y=',y);

end.

Пример 3. В двух строках текстового файла находится по два действительного числа. Найти сумму этих чисел. Результат вывести на экран.

Текст программы:

Program one;

Var a,b,c,d,S: real;

F: text;

Begin

Assign(F, 'c:\temp\abc.txt');

Reset(F);

Readln(F, a, b);

Readln(F, c, d);

S:=a+b+c+d;

writeln('сумма=',S) ;

Close(F);

end.

При содержимом файла:

-1.5 3.5

6.5 4

Результат программы:

сумма=12.5

Для контроля прочитанных из файла значений желательно добавлять в программу следующую команду: writeln(‘из файла прочитаны значения: a=’, a,’ b=’,b, ‘ c=’,c, ‘ d=’ , d).

Пример 4. Примечание: в данной задаче для выделения дробной части необходимо использовать целочисленные операции, а не функцию frac(x), так как в результате вызова функции возвращается приближённое значение, например,

Frac(338.169)=0.168999999999983.

program n18;

var t,h,m,s:integer;

f:Text;

begin

Assign(f,’18.txt’);

Reset(f);

Readln(f,t);

Close(f);

writeln(‘введено время в секундах’,t);

h:= t div 3600;

m:= t mod 3600 div 60;

s:=t mod 60;

writeln('часы h=',h);

writeln('минуты m=',m);

writeln('секунды s=',s);

end.

Задание №19:

program n19;

var number1, number2,dr:real;

c:integer;

f:Text;

begin

Assign(f,’19.txt’);

Reset(f);

Readln(f, number1);

Close(f);

writeln('исходное число', number1);

c:=trunc(number1); {целая часть числа}

dr:=trunc(number1*1000) mod 1000 ;{дробная часть числа, записанная как целое 3-хзначное число}

number2:=dr+ c/1000;

writeln('число 1= ',number1,'число 2= ', number2);

end.

Задание №21:

Пояснения к решению:

Для решения данной задачи требуется провести ряд выкладок:

  1. Окружность составляет 360, это значение – 12 часов. Следовательно, в 1 часе 360/12=30.

  2. в 1 часе (30)– 60 минут. Следовательно, одному градусу соответствует 2 минуты.

  3. Если будет введено число, содержащее дробную часть, то округление должно производиться по правилам математики, например, число 90.5 будет производиться в большую сторону, так как 0.5 соответствует 1 мин.

program n21;

var y:real;

yc:integer;

h,m:0..60;

f:Text;

begin

Assign(f,’19.txt’);

Reset(f);

Readln(f,y);

Close(f);

writeln(‘угол составляет’, y,’градусов’);

yc:=round(y); {преобразовали вещественное число к целому}

h:=yc div 30; {полное количество часов}

m:= yc mod 30 *2 ;{целое количество минут}

writeln(число полных часов',h, 'прошло минут ',m)

end.

Вывод данных

Program n18;

var t,h,m,s:integer;

Fi, Fo:Text;

begin

Assign(Fi,’18.txt’);

Assign(Fo,’Result_18.txt’);

Reset(Fi);

Readln(Fi,t);

Close(Fi);

Rewrite(Fo);

writeln(Fo,‘введено время в секундах’,t);

h:= t div 3600;

m:= t mod 3600 div 60;

s:=t mod 60;

writeln(Fo,'часы h=',h);

writeln(Fo,'минуты m=',m);

writeln(Fo,'секунды s=',s);

Close(Fo)

end.

Рассмотрим решение задачи №28 из практической работы 3.1 (Вывести результат логического выражения: Среди первых трёх цифр из дробной части вещественного числа есть нуль).

program N28;

var

Dr:real;

cd:integer;

a,b,c:0..9;

begin

Writeln('введите вещественное число');

Readln(Dr);

cd:=Trunc(frac(Dr)*1000); {выделение из дробной части числа трёх первых цифр, результат – целое трёхзначное число}

a:=cd div 100;

b:=cd div 10 mod 10;

c:=cd mod 10;

writeln((a=0) or (b=0) or (c=0));

end.

Домашнее задание

Задание 1. Один из вариантов задания №29 из Практической работы 3.1. Данные должны вводиться из файла, результаты выводиться в файл. Разработать тесты к программе и проверить их.

Задание 2. Задание из №30-36 из Практической работы 3.1. Данные должны вводиться из файла, результаты выводиться в файл. Разработать тесты к программе и проверить их.

Домашнее задание. §2.2.5, №3,4 после параграфа (блок-схемы в тетради, программы в электронном виде).

Практикум к главе 2 «Методы программирования»

Раздел 3. Структурное программирование

Работа 3.1. Программирование линейных алгоритмов на Паскале (к § 2.2.4)

Для каждой вычислительной задачи составить два варианта программы: 1) с вводом исходных данных с клавиатуры и выводом на экран; 2) с вводом исходных данных из текстового файла и выводом результатов в другой текстовый файл.

Для каждой задачи на составление логических выражений составить программу, выводящую значение TRUE, если указанное высказывание является истинным, и FALSE в противном случае (нельзя использовать условный оператор)

Уровень 1

Вычислительные задачи

1. Вычислить длину окружности и площадь круга одного и того же заданного радиуса R.

2. Вычислить расстояние между двумя точками с данными координатами на плоскости (х1, y1) и (х2, y2).

3. Дана длина ребра куба. Найти площадь грани, площадь пол­ной поверхности и объем этого куба.

4. Три сопротивления R1, R2, R3 соединены параллельно. Най­дите сопротивление всей цепи.

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

6. Вычислить корни квадратного уравнения ax2+bx+с = 0 с за­данными коэффициентами а, b и с (предполагается, что а ≠ 0 и что дискриминант уравнения неотрицателен).

7. Найти площадь равнобедренной трапеции с основаниями а и b и углом α при большем основании а.

Задачи на составление логических выражений

8. Треугольник со сторонами a, b, c является равносторонним

9. Целое число N является четным двузначным числом.

10. Треугольник со сторонами a, b, c является равнобедренным.

11. Среди чисел a, b, c есть хотя бы одна пара взаимно противоположных чисел.

12. Данные числа x, y являются координатами точки, лежащей в первой координатной четверти.

13. Данные числа c и d являются соответственно квадратом и кубом числа a.

14. Заданное натуральное число N является двузначным и кратно K.

Уровень 2

Вычислительные задачи

15. Заданы координаты трех вершин треугольника (х1, y1), (х2, y2), (х3, y3). Найти его периметр и площадь.

16. Найти произведение всех цифр заданного четырехзначного числа.

17. Вычислить площадь и периметр правильного N-угольника, описанного около окружности радиуса R (рассмотреть N – цело­го типа, R –вещественного типа).

18. Дано натуральное число T, которое представляет длитель­ность прошедшего времени в секундах. Вывести данное значение длительности в часах, минутах и секундах в следующей форме: НН ч ММ мин SS с.

19. Дано действительное число R вида nnn. ddd (три цифровых разряда в дробной и целой частях). Поменять местами дробную и целую части числа и вывести полученное значение числа.

20. Составить программу перевода радианной меры угла в гра­дусы, минуты и секунды.

21. С начала суток часовая стрелка повернулась на y градусов (0 ≤ y <360, y — вещественное число). Определить число полных часов и полных минут, прошедших с начала суток. Сформулировать и решить обратную задачу.

Задачи на составление логических выражений

22. (x1y1) и (x2y2) — координаты левой верхней и правой нижней вершин прямоугольника. Точка A(xy) принадлежит прямоугольнику.

23. Данное четырехзначное число читается одинаково слева направо и справа налево.

24. В заданном натуральном трехзначном числе N имеется четная цифра.

25. Сумма каких-либо двух цифр заданного трехзначного натурального числа N равна третьей цифре.

26. Сумма цифр заданного четырёхзначного числа N превосходит произведение цифр этого же числа на 1.

27. Сумма двух последних цифр заданного трёхзначного числа N меньше заданного K, а первая цифра больше 5.

28. Среди первых трёх цифр из дробной части вещественного числа есть нуль.

Уровень 3

Вычислительные задачи

29. Дан произвольный треугольник ABC, для которого определен следующий набор характерных параметров: a, b, c — стороны треугольника; a, b,  - углы (в градусах); — высота, опущенная на сторону с; S — площадь; P — периметр треугольника. По трем заданным параметрам вычислить все остальные. Различные сочетания параметров определяют варианты заданий. Замечание: входные (исходные) и выходные значения углов должны представляться в градусной мере.

1) a, b, c;

2) a, b, ;

3) c, , ;

4) h, c, b;

5) h, c, ;

6) S, h, b;

7) S, h, ;

8) a, b, h;

9) a, b, S;

10) a, b, P;

11) a, h, ;

12) a, h, ;

13) S, c, ;

14) h, , ;

15) h, , .

Задачи на составление логических выражений

30. Целая и дробная части заданного вещественного числа одинаковы.

31. Заданы координаты трёх точек плоскости. Эти точки не лежат на одной

прямой.

32. Первые две цифры в дробной части заданного вещественного числа совпадают с записью целой части этого числа.

33. Точка с координатами (xy) принадлежит части плоскости, лежащей между прямыми y = m, y = n (m < n).

34. Среди первых трёх цифр из дробной части положительного вещественного числа есть нуль.

35. Шахматный король за один ход может переместиться с одного заданного поля на другое (каждое поле задано двумя координатами — целыми числами от 1 до 8).

36. Шахматный ферзь за один ход может переместиться с одного заданного поля на другое (каждое поле задано двумя координатами — целыми числами от 1 до 8).

Работа 1.2. Программирование ветвящихся алгоритмов на Паскале

(к § 2.2.6)

Вычислительные задачи

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]