Практикум по курсу Основы программирования

Материал из Вики ИТ мехмата ЮФУ
Версия от 09:47, 26 июля 2009; Bravit (обсуждение | вклад) (Операции с целыми числами)

Перейти к: навигация, поиск

Первый семестр

Простейший ввод/вывод, оператор присваивания, вычисление значения выражения

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>.

Операции с целыми числами

  1. Определить возраст человека в годах по возрасту, заданному в месяцах.
  2. Определить, сколько месяцев осталось до дня рождения человека, если известен его возраст в месяцах.
  3. Вычислить первую и вторую цифру заданного двузначного целого числа.
  4. Вычислить сумму цифр заданного двузначного числа.
  5. Определить последнюю цифру заданного целого числа.
  6. Вычислить сумму цифр заданного трехзначного числа.
  7. Даны две цифры, построить соответствующее двузначное число.
  8. Даны три цифры, построить соответствующее трехзначное число.

Использование условного оператора

Использование операторов цикла

Пошаговое выполнение программы

Функции и основы тестирования

Процедуры, передача параметров

Модули

Массивы

Записи

Графика

Второй семестр

Символы и строки

Обработка файлов

Указатели и динамическая память, списочные структуры данных

Рекурсия

Деревья

Использование классов стандартной библиотеки

Использование контейнерных классов .NET

Объектно-базированное программирование

Чтение и реализация UML-диаграмм

Генерация и обработка исключений

Наследование и полиморфизм