- •Т.Э. Шульга программирование.
- •Глава 1. Основы программирования на языке высокого уровня 6
- •Глава 2. Динамические структуры данных 40
- •Глава 3. Основы объектно-ориентированного программирования 53
- •Введение
- •Глава 1. Основы программирования на языке высокого уровня
- •Void main()
- •Задания
- •1.2. Переменные. Основные типы данных
- •Ввод – вывод значений переменных
- •Форматирование данных при обменах с потоками ввода-вывода
- •Void main()
- •Void main()
- •Преобразование типов
- •Задание 1. Описание переменных и преобразование типов
- •Задание 2. Форматирование вывода
- •1.3. Основные операции
- •Void main ()
- •Задания
- •1.4. Конструкции выбора
- •Void main()
- •Void main()
- •Void main()
- •Задание 1. Обработка введенного символа
- •Задание 2. Вычисление значения функции
- •Задание 3. Применение разветвляющихся алгоритмов при решении простейших задач
- •Задание 4. Mультиветвление
- •1.5. Конструкции цикла и передачи управления
- •Void main()
- •Задание 1. Детерминированные циклы. Простейшие задачи
- •Void main()
- •Задание 2. Итерационные циклы. Простейшие задачи
- •Void main()
- •Int last;
- •Задание 3. Одномерные массивы
- •Void main ()
- •Int a[100],n,max,imax;
- •Задание 4. Вложенные циклы
- •Void main ()
- •Задание 5. Двумерные массивы
- •Void main ()
- •Задание 6. Посимвольная обработка строк
- •Void main()
- •Задание 7. Сортировка массива
- •Void main ()
- •1.6.Функции
- •Int oct (int a)// определение функции
- •Void main()
- •Void main()
- •Int strcmp(const char *str1, const char* str2);
- •Int fclose (file * stream);
- •Int feof(file *stream);
- •Int fseek ( file* stream, long offset, int origin);
- •Задание 1. Определение и вызов функций
- •Задание 2. Рекурсивные функции
- •Задание 3. Использование библиотечных функций string.H
- •Void main()
- •Задание 4. Использование библиотечных функций stdio.H
- •Void main ()
- •Глава 2. Динамические структуры данных
- •Int year;
- •Int children;
- •Задание 1. Структуры
- •Int year;
- •Int month;
- •Int visokos(int year)
- •Vivod (date d)
- •Int day_number(date d)
- •Vivod(mas[I]);
- •Vivod (min(mas,n));
- •Задание 2. Динамический список
- •Int mark;
- •Void vvod ()
- •Void vivod()
- •If (begin)
- •Void vivod_f()
- •If (begin)
- •Void add()
- •Void udol () //
- •If (begin)
- •Void del()
- •Void main ()
- •Задание 3. Использование стеков и очередей
- •Глава 3. Основы объектно-ориентированного программирования
- •Void empty();
- •If (len) delete []s;
- •Void cStr::empty()
- •Задание 1 . Описание простейшего класса
- •Задание 2 . Класс string
- •Void main()
- •Void main ()
- •Задание 3. Класс fstream
- •Задание 4. Наследование
- •Список литературы
Void main ()
{
float a,b,S,d;
cout << "\nEnter a,b ";
cin >>a>>b;
S=a*b;
d=sqrt(a*a+b*b);
cout<< "\nSquare = "<<S<<", diagonal= "<<d;
}
Задания
Каждому студенту рекомендуется выполнить хотя бы одно из упражнений 1–12.
-
Вычислить целую часть среднего арифметического и среднего геометрического трех вещественных чисел.
-
Вычислить длину окружности и площадь круга с заданным радиусом R, а также длину дуги окружности в n.
-
Вычислить периметр и площадь прямоугольного треугольника по двум заданным катетам.
-
По длинам гипотенузы и катета прямоугольного треугольника определить длину второго катета и площадь треугольника.
-
По длинам двух сторон треугольника и углу (в градусах) между ними найти площадь треугольника и параллелограмма, построенного на этих сторонах, а также по две высоты треугольника и параллелограмма, опущенные на заданные стороны.
-
По заданным координатам (x1,y1), (x2,y2), (x3,y3) вершин треугольника найти его площадь:
.
-
По трем заданным ребрам прямоугольного параллелепипеда найти его объем и диагональ.
-
По заданной высоте правильной пирамиды и стороне треугольника, лежащего в ее основании, найти ее объем.
-
По заданному радиусу найти площадь поверхности и объем шара.
-
По трем заданным сторонам треугольника a ,b, c найти высоту, опущенную на сторону a:
-
По трем заданным сторонам треугольника a ,b, c найти радиус вписанного в него круга:
.
-
По трем заданным сторонам треугольника a ,b, c найти радиус описанного вокруг него круга:
.
1.4. Конструкции выбора
К конструкциям выбора в С++ относят условную конструкцию if и переключатель switch.
Синтаксис условной конструкции:
if (выражение) оператор1;
if (выражение) оператор1; else оператор2;
Выражение должно быть скалярным и иметь арифметический тип или тип указателя. В операторе if оператор1 выполняется в том случае, если выражение ненулевое, иначе выполняется оператор2 или не выполняются никакие действия, если оператор2 не задан, то есть отсутствует else. В частности, если a целое, то if (a) эквивалентно if (a != 0).
Часто используются в условиях логические операции &&, ||, !. Операции && и || не будут вычислять второй аргумент, если это не нужно. Например, if (p && r) … вначале проверяет, является ли p не нулем, и только, если это так, то проверяет r.
Некоторые простые операторы if могут быть с удобством заменены выражениями арифметического if. Например,
if (a <= b) max = b;
else max = a;
лучше выражается так: max = (a<=b) ? b : a;
В качестве операторов нельзя использовать описания, но можно использовать блоки, в которых, в частности, могут быть включены описания.
Пример 1. Напишите программу, которая вычисляет и выводит на экран значение
y=.
#include <iostream.h>
Void main()
{
double x,y;
cout<< "\nEnter x: ";
cin >> x;
if ((x>0)||(x<-1)) y=1/x;
else y=x;
cout << "\ny="<<y;
}
Операторы в конструкции if в свою очередь могут быть условными, что позволяет организовывать цепочку проверок условий любой вложенности. Синтаксис языка предполагает, что при вложенных условиях операторов каждое else соответствует ближайшему к нему предшествующему if.
Пример 2. Используя вложенные уловные операторы, найти максимум из трех целых чисел.
#include <iostream.h>