Практикум по курсу Основы программирования — различия между версиями
Bravit (обсуждение | вклад) (→Использование условного оператора) |
Bravit (обсуждение | вклад) (→Логические операции, условный оператор: добавлены рекомендации к выполнению) |
||
Строка 112: | Строка 112: | ||
== Логические операции, условный оператор == | == Логические операции, условный оператор == | ||
+ | |||
+ | '''Рекомендации к выполнению''' | ||
+ | |||
+ | а) Есть два способа проверки четности и нечетности. В первом способе вычисляется остаток от деления на 2 и сравнивается с нулем. Если остаток равен нулю, то число четное, если не равен, то нечетное. | ||
+ | <source lang="Pascal"> | ||
+ | if a mod 2 <> 0 then | ||
+ | Writeln('Число четное') | ||
+ | else | ||
+ | Writeln('Число нечетное'); | ||
+ | </source> | ||
+ | Второй способ заключается в использовании стандартной функции odd, возвращающей истинное значение, если переданное ей число является нечетным. Для проверки четности достаточно добавить операцию not. | ||
+ | <source lang="Pascal"> | ||
+ | if not odd(a) then | ||
+ | Writeln('Число четное') | ||
+ | else | ||
+ | Writeln('Число нечетное'); | ||
+ | </source> | ||
+ | Второй способ обычно ''более предпочтителен''. | ||
+ | |||
+ | б) Если в задаче требуется определить истинность некоторого утверждения, то следует выводить логическое значение (True или False). Например, при определении нечетности заданного числа лучше вместо | ||
+ | <source lang="Pascal"> | ||
+ | if odd(a) then | ||
+ | Write('да') | ||
+ | else | ||
+ | Write('нет'); | ||
+ | </source> | ||
+ | написать так: | ||
+ | <source lang="Pascal"> | ||
+ | // Переменная будет иметь тип boolean | ||
+ | var isOdd := odd(a); | ||
+ | Write(isOdd); | ||
+ | </source> | ||
+ | |||
1. Дано целое число ''a''. Если оно является четным, увеличить его в два раза. Вывести значение числа ''a''. | 1. Дано целое число ''a''. Если оно является четным, увеличить его в два раза. Вывести значение числа ''a''. |
Версия 10:23, 26 июля 2009
Содержание
- 1 Первый семестр
- 1.1 Простейший ввод/вывод, оператор присваивания, вычисление значения выражения
- 1.2 Операции с целыми числами
- 1.3 Логические операции, условный оператор
- 1.4 Использование операторов цикла
- 1.5 Функции и основы тестирования
- 1.6 Процедуры, передача параметров
- 1.7 Модули
- 1.8 Массивы
- 1.9 Записи
- 1.10 Графика
- 2 Второй семестр
Первый семестр
Простейший ввод/вывод, оператор присваивания, вычисление значения выражения
1. Рассмотрите пример, создайте файл с этой программой и запустите ее на выполнение:
// Программа, печатающая приветствие - это комментарий к программе
program Hello;
begin
Writeln('Привет, мир');
end.
2. Создайте файл и сохраните его с именем name.pas. В этом файле напишите программу, выводящую ваше имя и фамилию.
3. Изучите пример, демонстрирующий использование вещественных переменных:
// Использование вещественных переменных
begin
// Объявление переменной с одновременным присваиванием значения
var a:real := 10.1;
// Вывод значения переменной
Writeln('a = ', a);
// Присваивание переменной нового значения
a := 5;
// Увеличение значения переменной
a += 0.6;
// Вывод значения переменной
Writeln('a = ', a);
end.
4. Объявите вещественную переменную a со значением 1.5. Увеличьте ее в три раза и выведите новое значение. Объявите переменную b и присвойте ей удвоенное значение переменной a, выведите ее значение. Обнулите значение переменной a и вновь выведите ее значение. Вычислите сумму значений переменных a и b.
5. Рассмотрите примеры с вычислением периметра квадрата и периметра и длины гипотенузы прямоугольного треугольника:
// Вычисление периметра квадрата по заданной стороне
begin
Writeln('Введите длину стороны квадрата:');
// Объявление переменной для хранения длины стороны
var a: real;
// Ввод длины стороны
Read(a);
// Вычисление периметра
var P: real := 4 * a;
Writeln('Периметр P = ', P);
end.
// Вычисление гипотенузы и периметра прямоугольного треугольника по заданным катетам
begin
Writeln('Введите длины катетов (два числа, разделенные пробелом):');
// Объявление переменных для хранения катетов
var a, b: real;
Read(a, b);
// Тип переменной c определяется автоматически, как результат вычислений
// sqrt - функция вычисления квадратного корня
var c := sqrt(a*a + b*b);
Writeln('Гипотенуза c = ', c);
// Вычисление периметра треугольника
var P := a + b + c;
Writeln('Периметр P = ', P);
end.
6. Напишите программу, вычисляющую периметр и площадь прямоугольника по заданным длинам сторон.
7. Вычислите синус и косинус угла, заданного в радианах.
8. Вычислите значение выражения по заданным a, b и c: <math>\frac{a+b}{a-b}+\sqrt{\frac{c}{2}}</math>.
9. Вычислите значение логарифма числа 1024 по основанию 2, пользуясь функцией ln, вычисляющей натуральный логарифм заданного числа, и формулой: <math>\log_a b = \frac{\ln b}{\ln a}</math>.
10. Известна скорость лодки и пройденный ею путь. Вычислите время движения лодки.
11. Вычислите значение выражения: <math>\frac{x+\sin x}{y-\sin z} + \ln(x+\sin x)</math>.
12. Вычислите длину окружности и площадь круга заданного радиуса.
13. Найти расстояние между двумя точками с заданными координатами <math>(x_1, y_1)</math> и <math>(x_2, y_2)</math> на плоскости.
Расстояние вычисляется по формуле <math>d=\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}</math>.
Операции с целыми числами
- Определить возраст человека в годах по возрасту, заданному в месяцах.
- Определить, сколько месяцев осталось до дня рождения человека, если известен его возраст в месяцах.
- Вычислить первую и вторую цифру заданного двузначного целого числа.
- Вычислить сумму цифр заданного двузначного числа.
- Определить последнюю цифру заданного целого числа.
- Вычислить сумму цифр заданного трехзначного числа.
- Даны две цифры, построить соответствующее двузначное число.
- Даны три цифры, построить соответствующее трехзначное число.
Логические операции, условный оператор
Рекомендации к выполнению
а) Есть два способа проверки четности и нечетности. В первом способе вычисляется остаток от деления на 2 и сравнивается с нулем. Если остаток равен нулю, то число четное, если не равен, то нечетное.
if a mod 2 <> 0 then
Writeln('Число четное')
else
Writeln('Число нечетное');
Второй способ заключается в использовании стандартной функции odd, возвращающей истинное значение, если переданное ей число является нечетным. Для проверки четности достаточно добавить операцию not.
if not odd(a) then
Writeln('Число четное')
else
Writeln('Число нечетное');
Второй способ обычно более предпочтителен.
б) Если в задаче требуется определить истинность некоторого утверждения, то следует выводить логическое значение (True или False). Например, при определении нечетности заданного числа лучше вместо
if odd(a) then
Write('да')
else
Write('нет');
написать так:
// Переменная будет иметь тип boolean
var isOdd := odd(a);
Write(isOdd);
1. Дано целое число a. Если оно является четным, увеличить его в два раза. Вывести значение числа a.
2. Определить номер наибольшего из двух заданных чисел a и b.
3. Даны точки A, B и C, расположенные на числовой оси. Определить координату точки, расположенную ближе всего к точке A.
4. Вычислить значение условного выражения для заданного значения x:
<math>y = \begin{cases} -x, & x \le\; 0 \\ x^2, & 0 < x < 2 \\ 4, & x \ge\; 0 \end{cases}</math>
5. Определить, является ли заданное число четным.
6. Определить, являются ли оба заданных числа нечетными.
7. Определить номер координатной четверти, в которой находится точка с координатами (x, y).
8. Определить, можно ли составить треугольник из трех отрезков заданной длины.
9. Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной сумму этих значений, а если равны, то присвоить переменным нулевые значения. Вывести новые значения переменных A и B.
10. Даны два числа. Вывести вначале большее, а затем меньшее из них.
11. Даны три числа. Найти сумму двух наибольших из них.