Главная
страница 1страница 2 ... страница 7страница 8
Задачник по программированию на языке Pascal

Орлов Александр Геннадьевич

Учитель Информатики и ИКТ

МОУ Тисульской средней общеобразовательной школы №1


Содержание

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

2. Программирование ветвящихся алгоритмов

3. Программирование циклических алгоритмов

4. Работа с массивами

5. Подпрограммы

6. Обработка строк

7. Файлы


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

Оператор присваивания можно назвать основным в любом языке программирования.



Оператор присваивания:

<переменная> := <выражение>

Оператор выполняется следующим образом. Вычисляется значение <выражения>, после чего <переменная> получает вычисленное значение. При этом тип выражения должен быть совместим с типом переменной.

Примеры оператора присваивания:

X:=(Y+Z)/(2+Z*10) - l/3;

LogPer:=(A>B) and (C<=D).

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

Тип выражения определяется типом полученного значения.



Арифметическое выражение — выражение числового типа (целого или вещественного). Идентификатор целого типа: integer, вещественного типа: real.

Арифметические операции бывают унарными и бинарными. К унарным относится операция изменения знака. Ее формат: - <величина>.

В следующей таблице представлены бинарные арифметические операции Паскаля. А и В обозначают операнды, для типов величин использованы обозначения: I — целый, R — вещественный.




Выражение

Типы операндов

Тип результата

Операция

А + В

R, R

R

Сложение




I, I

I




I, R R, I

R

А - В

R, R

R

Вычитание




I, I

I




I, R R, I

R

А * В

R, R

R

Умножение




I, I

I




I, R R, I

R

А/В

R, R

R

Вещественное

деление





I, I

R




I, R R, I

R

A div В

I, I

I

Целое деление

A mod В

I, I

I

Остаток от целого деления


Стандартные математические функции Паскаля представлены в следующей таблице:


Обращение

Тип аргумента

Тип рез-та

Функция

abs(x)

I, R

I, R

Модуль аргумента

arctan(x)

I, R

R

Арктангенс(радианы)

cos(х)

I, R

R

Косинус (х в радианах)

ехр (х)

I, R

R

ех — экспонента

fгас(х)

I, R

R

Дробная часть х

int(x)

I, R

R

Целая часть х

1п(х)

I, R

R

Натуральный логарифм

random




R

Псевдослучайное число в интервале [0,1]

random(x)

I

I

Псевдослучайное число в интервале [0,х]

round(x)

R

I

Округление до ближайшего целого

sin(x)

I, R

R

Синус (х — в радианах)

sqr (x)

I, R

R

Квадрат х

sqrt(x)

I, R

R

Корень квадратный

trunc(х)

R

I

Ближайшее целое, не превышающее х по модулю

Старшинство операций (в порядке убывания приоритета):



  • вычисление функции;

  • унарный минус;

  • *, /, div, mod;

  • +, -

Возведение положительного числа в вещественную степень следует производить, используя следующее математическое тождество: . На Паскале это записывается так: ехр (у*Ln(х))

Пример 1. Записать математические выражения в виде арифметических выражений на Паскале.

Математическое Выражение

выражение на Паскале

1. Sqr(x) - 7*х+6

2. (Abs(х)-Abs(у))/(1+Abs (x*y))

3. Ln(Abs((y-Sqrt(Abs(x)))*(x-y/(z+Sqr(x)/4))))



Ввод данных с клавиатуры производится путем обращения к стандартным процедурам:

read(<список ввода>) readln (<список ввода>)

Элементы списка ввода — идентификаторы переменных. Вводимые значения отражаются на экране. При выполнении оператора пользователь набирает на клавиатуре соответствующую последовательность значений, разделяя их пробелами.



Вывод данных на экран производится путем обращения к стандартным процедурам:

write(<список вывода>) writeln(<список вывода>)

Элементы списка вывода — константы, переменные, выражения, форматы вывода.



Структура программы на Паскале:

Program <Имя программы>;

Label <раздел описания меток>;

Const <раздел описания констант>;

Туре <раздел описания типов>;

Var <раздел описания переменных>;

Procedure (Function) <раздел описания подпрограмм>;

Begin

<раздел операторов>

End.

Для любой программы обязательным является лишь раздел операторов. Все программные объекты (константы, переменные, типы и пр.) должны быть описаны в соответствующих разделах описаний.

Здесь и в дальнейшем служебные слова Паскаля будут выделяться полужирным шрифтом. Служебными называются слова, значения которых в языке однозначно определены.

Пример 2. Составить программу вывода на экран фамилия, имени, отчества и года рождения. Вывод организовать в каждую строку.

Решение

Program Fio;

Begin

WriteLn ( ' Фамилия ' );

WriteLn ( ' Имя ' );

WriteLn ( ' Отчество ' );

WriteLn ( ' Год рождения ' );

End.
Пример 3. Скорость первого автомобиля км/ч, второго км/ч Расстояние между ними s км. Какое расстояние будет между ними через t ч, если автомобили движутся в разные стороны?

Решение

Согласно условию задачи искомое расстояние s1 = s + (+)t (если автомобили изначально двигались в противоположные стороны) или s2 = |s + (+)t| (если автомобили первоначально двигались навстречу друг другу).

Программа организует ввод исходных данных, вычисление искомых величин по формулам и вывод их на экран. Все величины в программе — вещественного типа.

Program Car;

Var V1, V2, T, S, S1, S2 : Real;

Begin

Write ( ' Введите скорости автомобилей,

расстояние между ними и время движения:' );

ReadLn (Vl, V2, S, Т);

S1:= S+(V1+V2)*T;

S2:= Abs((V1 +V2)*T-S);

WriteLn ( 'Расстояние будет равно ' , S1:7:4, 'км или' ,S2:7:4, ' км');

End.

Пример 4. Выполнить вычисление по формуле:

.

Решение

Program Expession;

Var T, К, M, L, X, Y, Z : Real;

Begin

Write ( 'Введите значения переменных Т, К, М, L, X, Y:' );

ReadLn (T,K,M,L,X,Y);

Z := Sqr (T*T-K*K)/(Sqr (Sqr (M))-Exp(5*Ln(L)))

+ Sqrt (Abs ((Sqrt (X)+Y)/(12-Abs(X))+4));

WriteLn ( ' Значение выражения: ', Z:12:6);



End.

Логические выражения в результате вычисления принимают логические значения true или false. Операндами логического выражения могут быть логические константы, переменные логического типа, отношения. Идентификатор логического типа в Паскале: boolean.

Логические операции. В Паскале имеются 4 логические операции: отрицание — NOT, логическое умножение — AND, логическое сложение — OR, исключающее «или» — XOR. Результаты логических операций для различных значений операндов приведены в таблице. Использованы обозначения Т — true, F — false.


А

В

Not A

A and В

A or В

A xor B

Т

Т

F

Т

Т

F

Т

F

F

F

Т

Т

F

F

Т

F

F

F

F

Т

Т

F

Т

Т

Приоритеты логических операций:

  1. действия в скобках;

  2. not;

  3. and;

  4. or;

  5. хог;

  6. <, >, <= ,>= , =, <>.

Примеры логических выражений:

1) True; 2) False; 3) А>В; 4) (А=В) and (C<=D) .

Операции отношений (= , <>, >=, <=, <, >) имеют более низкий приоритет, чем логические операции, поэтому их следует заключать в скобки при использовании по отношению к логическим операциям.

Пример 5. Составить программу, по которой выведете значение true, если точка с заданными координатам (х,у) лежит внутри заштрихованной области (рис. 1), и false — в противном случае.

Рис. 1

Решение

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

1-я часть: ; х2 + у2 < 9; .

2-я часть: x > 0; х2 + у2 < 25.

Точка с координатами (х,у) лежит в заштрихованной облас­ти, если она принадлежит 1-й или 2-й части.

Программа вводит координаты точки, вычисляет логическое выражение, определяющее принадлежность точки области и выводит полученную логическую величину на экран.



Program Point;

Var X, Y : real;

L: Boolean;



Begin

Write ( 'Введите X:' );

Readln(X);

Write ( 'Введите Y : ' );

ReadLn(Y);

L: = (X<=0) and (Sqr(X)+Sqr(Y)<=9) and (Y>=-X-3) or

(X>-0) and (Sqr(X)+Sqr(Y)<=25);

WriteLn ( 'Точка лежит в заданной области? ' , L);



End.

Задачи

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

№ 1 *********** № 2 *

* * * *


* * * *

* * * *


*********** **********

№ 3 ******* № 4 **********

* * * * * * * *

* * * * * *

* ** * * * * *

******* **********


Вычислить значения выражений по формулам №№ 5-30 (все переменные имеют действительный тип):

№ 5 ; № 6 ;

№ 7 ; № 8 ;

№ 9 ; № 10 ;

№ 11 ; № 12 ;

№ 13 ; № 14 ;

№ 15 ; № 16 ;

№ 17 ; № 18 ;

№ 19 ; № 20 ;

№ 21 ; № 22 ;

№ 23 ; № 24 ;

№ 25 ; № 26 ;

№ 27 ; № 28 ;

№ 29 ; № 30 .

№ 31

Вычислить периметр и площадь прямоугольного треугольника по заданным длинам двух катетов а и b.



№ 32

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

№ 33

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



№ 34

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

№ 35

Даны два числа. Найти среднее арифметическое кубов этих чисел и среднее геометрическое модулей этих чисел.



№ 36

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

№ 37

Даны два действительных числа x и у. Вычислить их сумму, разность, произведение и частное.



№ 38

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

№ 39

Дана сторона равностороннего треугольника. Найти площадь этого треугольника, его высоты, радиусы вписанной и описанной окружностей.



№ 40

Известна длина окружности. Найти площадь круга, ограни­ченного этой окружностью.

№ 41

Найти площадь кольца, внутренний радиус которого равен г, а внешний — заданному числу R (R> г).



№ 42

Треугольник задан величинами своих углов и радиусом описанной окружности. Найти стороны треугольника.

№ 43

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



№ 44

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

№ 45

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



.

№ 46


Дано х. Получить значения -2x + 3x2 – 4x3 и 1 + 2x + 3x2 + 4x3. Позаботиться об экономии операций.

№ 47


Найти площадь треугольника, две стороны которого равны а и b, а угол между этими сторонами равен .

№ 48


Дано а. Не используя никаких функций и никаких операций, кроме умножения, получить a8 за три операции; a10 и a16 за четыре операции.

№ 49


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

№ 50


Найти все углы треугольника со сторонами а, b, с. Предусмотреть в программе перевод радианной меры угла в градусы, минуты и секунды.

№ 51


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

№ 52


Составить программу для вычисления пути, пройденного лодкой, если ее скорость в стоячей воде v км/ч, скорость течения реки u км/ч, время движения по озеру t1 ч, а против течения реки — t2 ч.

№ 53


Текущее показание электронных часов: m часов (0≤m≤23), n мин (0≤n≤59), k с (0≤k≤59). Какое время будут показывать часы через p ч q мин r с?

№ 54


Полторы кошки за полтора часа съедают полторы мышки. Сколько мышек съедят X кошек за Y часов?

№ 55


Составить программу вычисления объема цилиндра и конуса, которые имеют одинаковую высоту Н и одинаковый радиус основания R.

№ 56


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

№ 57


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

№ 58


Составить программу, печатающую значение true, если указанное высказывание является истинным, и false в противном случае:

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

  2. Сумма цифр данного трехзначного числа N является четным числом;

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

  4. Квадрат заданного трехзначного числа равен кубу суммы цифр этого числа;

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

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

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

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

  9. Числа c и b выражают длины катетов одного прямоугольного треугольника, а с и d — другого. Эти треугольники являются подобными;

  10. Даны три стороны одного и три стороны другого треугольника. Эти треугольники равновеликие, т. е. имеют равные площади;

  11. Данная тройка натуральных чисел а, b, с является тройкой Пифагора, т. е. c2 = a2 + b2;

  12. Все цифры данного четырехзначного числа N различны;

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

  14. (x1,y1) и (x2,y2) — координаты левой верхней и правой нижней вершин прямоугольника; точка А (x,у) лежит внутри этого прямоугольника или на одной из его сторон;

  15. Число с является средним арифметическим чисел а и b;

  16. Натуральное число N является точным квадратом;

  17. Цифры данного четырехзначного числа N образуют строго возрастающую последовательность;

  18. Цифры данного трехзначного числа N являются членами арифметической прогрессии;

  19. Цифры данного трехзначного числа N являются членами геометрической прогрессии;

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

  21. Цифра М входит в десятичную запись четырехзначного числа N;

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

  23. Сумма двух натуральных чисел кратна 2;

  24. Произведение натуральных чисел а и b кратно числу с;

  25. Сумма двух действительных чисел а и b является целым числом, т. е. дробная часть суммы равна нулю;

  26. Данное натуральное число, а кратно числу b, но не кратно числу с.

№ 59

Составить программу, которая печатает true, если точка с координатами (x, у) принадлежит заштрихованной области, и false в противном случае:
















2. Программирование ветвящихся алгоритмов
Для программирования ветвящихся алгоритмов применяются условный оператор (оператор ветвления) и оператор выбора.

Условный оператор имеет следующий формат:

следующая страница >>
Смотрите также:
Задачник по программированию на языке Pascal
1079.61kb.
8 стр.
Решение 50 типовых задач по программированию на языке Pascal Дата размещения сборника в сети: 31. 08. 2012
1668.96kb.
24 стр.
1 Положение определяет общий порядок и проведение олимпиады по программированию на физическом факультете
61.01kb.
1 стр.
При выполнении задания учащиеся должен применять следующие фразы
403.46kb.
4 стр.
Курсовая работа по курсу «Программирование» Тема работы: «Разработка приложения с графическим интерфейсом на языке программирования С++ с использованием библиотеки qt»
108.12kb.
1 стр.
Программирование на языке Pascal
120.27kb.
1 стр.
Инструкция по программированию стр. Инструкция по программированию
271.5kb.
1 стр.
13-ая командная Всероссийская олимпиада по информатике и программированию среди школьников
25.97kb.
1 стр.
Чемпионат по программированию
35.61kb.
1 стр.
Инструментальные средства для проведения соревнований по спортивному программированию
80.86kb.
1 стр.
Сборник задач по курсу " Программирование на языке Pascal"
1113.19kb.
19 стр.
1. Среда языка программирования Pascal abc
537.72kb.
4 стр.