
- •Д.С. Семенов
- •Содержание
- •Введение
- •Лабораторная работа №1 Программирование алгоритмов линейной структуры
- •Основные теоретические сведения
- •Арифметические операции и операции присваивания
- •Математические функции - файл math.H
- •Варианты заданий
- •Лабораторная работа №2 Программирование алгоритмов разветвляющейся структуры
- •Оператор передачи управления
- •Лабораторная работа №3 Программирование алгоритмов циклической структуры
- •Оператор цикла с предусловием
- •Операторы прерывания цикла
- •Лабораторная работа №4 Программирование алгоритмов над статическими массивами
- •Лабораторная работа №5 Программирование алгоритмов над многомерными динамическими массивами
- •Delete имя_указателя;
- •Имя_массива[индекс]
- •Delete [] имя_указателя;
- •Тип_массива ** имя_указателя;
- •Лабораторная работа №6 Программирование алгоритмов над массивами символов
- •Основные теоретические сведения
- •Список используемой литературы:
- •Математические функции - файл math.H
- •Функции ввода-вывода для стандартных файлов
- •Функции для работы со строками
- •Функции для работы с терминалом в текстовом режиме
- •Функции для выделения и освобождения памяти
- •Специальные функции
- •Компонентные функции класса ios
- •Компонентные функции класса istream
- •Компонентные функции класса ostream
- •Функции – манипуляторы
- •Параметризованные функции – манипуляторы – файл iomanip.H
- •Компонентные функции класса filebuf
- •Компонентные функции классов ifstrefm, ofstream, fstream
- •Режимы файла,
- •Приложение 2
- •Полная таблица десятичных, шестнадцатеричных и двоичных ascii - кодов
- •Продолжение табл. П1.18
Оператор передачи управления
Оператор goto позволяет прервать обычный поток управления и передать управление в произвольную точку кода, помеченную специальной меткой и имеет следующую форму:
goto метка;
Метка в тексте программы обозначается идентификатором с последующим двоеточием. Например
Lbegin:
Метка отмечает точку, в которую передается управление оператором goto. Метка может располагаться в любом месте блока, как после оператора goto передающего на нее управление, так и до этого оператора. При этом нужно иметь в виду, что передача управления извне или внутрь цикла может приводить к непредсказуемым последствиям.
Метки можно использовать внутри всей функции, в которой они указаны, но на них нельзя ссылаться вне тела функции.
Следует помнить, что чрезмерно широкое применение оператора goto делает структуру программы крайне запутанной и плохо читаемой, что затрудняет ее дальнейшее ее сопровождение.
Примеры, реализующие алгоритмы разветвляющейся структуры
Пример 1. Для данной области (рис. 5.а) составить программу, которая определяет принадлежность точки с координатами (x,y) закрашенной области:
а) b)
Рис. 5
Разобьем закрашенную область на три фигуры (рис. 5.б) и для каждой фигуры приведем ограничения в виде неравенств.
Фигура A
ограничена осью абсцисс (y=0)
и окружностью с центром в точке (-2;-1)
и радиусом R=2.
Чтобы точка принадлежала фигуре A
нужно выполнение следующих условий:
И
.
Фигура B
ограничена осью абсцисс (y=0),
осью ординат (x=0),
прямой, проходящей через точки (-5;-6)
и (0;-5),
а также окружностью с центром в точке
(-2;-1)
и радиусом R=2.
Чтобы точка принадлежала фигуре B
нужно выполнение следующих условий:
И
И
И
.
Фигура C
ограничена прямыми, параллельными осям
координат (y=-4),
(x=-5),
(x=-1),
а также прямой, проходящей через точки
(-5;-6)
и (0;-5).
Чтобы точка принадлежала фигуре C
нужно выполнение следующих условий:
И
И
И
.
Для того, чтобы точка принадлежала закрашенной области, необходимо выполнение одного из двух условий:
чтобы точка попала в область фигуры A;
чтобы точка попала в область фигуры В и одновременно не попала в область фигуры C.
В общем случае условие принадлежности закрашенной области выглядит следующим:
A ИЛИ (B И (НЕ С))
Листинг программы, выполняющий данное задание:
#include<iostream.h>
#include<conio.h>
main()
{
double x,y;
cout <<"Введите координаты точки:"<<endl;
cout <<"x=";
cin >> x;
cout <<"y=";
cin >> y;
int A,B,C;
//проверка условий попадания в область фигуры A
A=(y>0)&&((x+2)*(x+2)+(y+1)*(y+1)<4);
//проверка условий попадания в область фигуры B
B=(y<0)&&(x<0)&&(y>0.2*x-5)
&&((x+2)*(x+2)+(y+1)*(y+1)>4);
//проверка условий попадания в область фигуры C
C=(y<-4)&&(x>-4)&&(x<-1);
//проверка условия попадания в закрашенную область
//если A ИЛИ (B И (НЕ С))
if (A||(B&&(!C)))
cout << "Точка принадлежит заданной области";
else
cout << "Точка не принадлежит заданной области";
getch();
}
Пример 1. Составить программу, которая по введенным двум числам и одному из знаков (+, -, *, /), осуществит результат соответствующего арифметического действия.
#include<iostream.h>
#include<conio.h>
main()
{
double x,y;
cout <<"Введите число X=";
cin >>x;
cout <<"Введите число Y=";
cin >>y;
char op;
cout <<"Введите арифметическую операцию:";
cin >>op;
switch (op){
case '+': cout <<"X+Y="<<x+y;
break;
case '-': cout <<"X-Y="<<x-y;
break;
case '*': cout <<"X*Y="<<x*y;
break;
case '/': cout <<"X/Y="<<x/y;
break;
default: cout <<"Неизвестная операция!";
}
getch();
}
Варианты заданий
ЗАДАНИЕ I:
Для данных областей составить программу, которая определяет принадлежность точки с координатами (x,y) закрашенной области:
1.
|
2.
|
3.
|
4.
|
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.
|
32.
|
33.
|
34.
|
35.
|
36.
|
37.
|
38.
|
39.
|
40.
|
41.
|
42.
|
43.
|
44.
|
45.
|
46.
|
47.
|
48.
|
49.
|
50.
|
ЗАДАНИЕ 2:
Для всех вариантов заданий, при организации ветвления в программе, следует использовать конструкцию множественного выбора switch … case.
Написать программу расчета площади фигуры по названию (треугольник, квадрат, прямоугольник, ромб, трапеция и окружность). Для вычисления площади, программа должна производить запрос необходимых параметров исходя из выбранной фигуры.
Написать программу расчета периметра фигуры по названию (треугольник, квадрат, прямоугольник, ромб, трапеция и окружность). Для вычисления периметра, программа должна производить запрос необходимых параметров исходя из выбранной фигуры.
Написать программу расчета объема фигуры по названию (шар, конус, усеченный конус, куб, параллелепипед и цилиндр). Для вычисления объема, программа должна производить запрос необходимых параметров исходя из выбранной фигуры.
Написать программу, которая по введенной длине отрезка и номеру единицы измерения (1 — дециметр, 2 — километр, 3 —метр, 4 — миллиметр, 5 — сантиметр) выводит соответствующее значение длины отрезка в метрах.
Написать программу, которая по введенному числу и номеру месяца выводит информацию, является ли этот день праздничным и название праздника.
Составить программу случайного выбора места летнего отдыха из семи предлагаемых туристическим агентством курортов, причем с вероятностью 3/10 придется отдыхать на даче.
Даны два вещественных положительных числа х и у. Арифметические действия над числами пронумерованы (сложение — 1, вычитание — 2, умножение — 3, деление — 4). Составить программу, которая по введенному номеру выполняет то или иное действие над числами.
Написать программу, которая по введенной массе и номеру единицы измерения (миллиграмм — 1, грамм — 2, килаграмм — 3, центнер — 4, тонна —5) выводит соответствующее значение массы в килограммах.
Пусть элементами треугольника являются: сторона а (первый элемент), площадь S (второй элемент), высота h (третий элемент), радиус вписанной окружности r (четвертый элемент), радиус описанной окружности R (пятый элемент). Составить программу, которая по введенному номеру и значению соответствующего элемента вычисляет значения всех остальных элементов треугольника. (Углы треугольника считаются известными).
Составить программу случайного выбора дежурного из списка, в котором 4 девушки и 4 молодых человека, причем для девушек вероятность выбора в два раза ниже.
Пусть элементами параллелограмма являются: сторона а (первый элемент), площадь S (второй элемент), высота h (третий элемент), диагональ d (четвертый элемент). Составить программу, которая по введенному номеру и значению соответствующего элемента вычисляет значения всех остальных элементов треугольника. (Углы параллелограмма считаются известными).
Написать программу, которая запрашивает натуральной число (от 0 до 99) в десятичном представлении и выводит его название на естественном языке. Например: 7 семь, 52 пятьдесят два
Вычислить порядковый номер дня по заданному числу, месяцу и году.
Написать программу, которая по введенному числу и месяцу выдает в качестве результата расписание занятий в этот день (год считать текущим).
Пусть элементами круга являются радиус (первый элемент), диаметр (второй элемент) и длина окружности (третий элемент). Составить программу, которая по номеру элемента запрашивала бы его соответствующее значение и вычисляла бы площадь круга.
Составить программу случайного выбора трех дисциплин, по которым придется сдавать экзамены, из предлагаемых на выбор четырех (всего возможно 4 варианта выбора).
В старояпонском календаре был принят 12-летний цикл. Годы внутри цикла носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. Написать программу, которая вводит номер некоторого года и печатает его название по старояпонскому календарю. (Справка: 1996 г. — год Крысы — начало очередного цикла).
Даны два числа в виде дробей A/B и C/D. Арифметические действия над числами пронумерованы (сложение — 1, вычитание — 2, умножение — 3, деление — 4). Составить программу, которая по введенному номеру выполняет то или иное действие над этими числами, результат выводится в виде дроби.
Даны два комплексных числа A+jB и C+jD. Арифметические действия над числами пронумерованы (сложение — 1, вычитание — 2, умножение — 3, деление — 4). Составить программу, которая по введенному номеру выполняет то или иное действие над этими числами.
Написать программу расчета площади фигуры по названию (шар, конус, усеченный конус, куб, параллелепипед и цилиндр). Для вычисления площади, программа должна производить запрос необходимых параметров исходя из выбранной фигуры.
Написать программу, которая определяет принадлежит ли точка c координатами (x,y) фигуре, выбранной по соответствующему номеру (прямая — 1, парабола — 2, гипербола — 3, окружность — 4). Для вычисления принадлежности программа должна производить запрос необходимых параметров исходя из выбранной фигуры.
Составить программу, которая бы реализовала следующий алгоритм: по введенным названиям двух нот (до, ре, ми, фа, соль, ля, си) определить интервал, образованный нотами. Секунда - это интервал из двух соседних нот (по кругу), терция - интервал через ноту и т.д. (кварта, квинта, секста, септима).
Написать программу, которая по числу и номеру месяца рождения выдавала знак зодиака.
Написать программу, которая по введенным коэффициентам передаточной функции
, определяла название простого звена.
По введенному четырехзначному номеру аудитории вывести словами номер и адрес корпуса, где находится аудитория и на каком этаже. Пример: 3203 находится в третьем корпусе, распложенным по адресу Макаренко, 40 на втором этаже.
Составить программу перевода числа из одной системы счисления в другую. Для этого вначале должен быть предусмотрен выбор системы счисления вводимого числа, а затем выбор системы счисления, в которую осуществляется перевод. Примечание: для ввода и перевода чисел в различные системы счисления использовать манипуляторы потокового ввода и вывода.
По введенному четырехзначному номеру телефона вывести примерное расположение адреса абонента. Пример: 330245 – Падунский район, п.Энергетик, 5 микрарайон.