- •1 Введение в теорию алгоритмизации 6
- •Введение
- •1 Введение в теорию алгоритмизации
- •1.1 Понятие алгоритма
- •1.2 Свойства алгоритмов
- •1.3 Формы представления алгоритма
- •1.4 Основные алгоритмические структуры
- •1.5 Алгоритмический язык
- •2.3 Инструменты программирования Microsoft Visual Studio
- •2.5 Консольные и оконные приложения
- •2.6 Компилирование программы
- •3.2 Простые типы данных
- •3.3 Операции над числовыми данными
- •3.4 Объявление переменных
- •3.7 Директива #define
- •3.9 Библиотека математических функций
- •4 Условный оператор
- •4.1 Условный оператор if
- •4.2 Составной оператор
- •4.3 Вложенный оператор
- •4.4 Оператор выбора switch
- •5 Операторы циклов
- •5.1 Определение цикла
- •5.2 Оператор цикла for
- •5.3 Оператор цикла while
- •5.4 Оператор цикла do while
- •5.5 Табулирование функций
- •5.6 Вычисление конечных сумм и произведений
- •5.7 Управляющие конструкции break, continue, return, goto
- •6 Массивы
- •6.1 Понятие и описание массивов
- •6.2 Одномерные массивы
- •6.3 Двумерные массивы (матрицы)
- •7 Символьные массивы
- •7.1 Описание символьного массива
- •7.2 Стандартные библиотечные функции над строками
- •8 Указатели и операции над указателями
- •8.1 Описание указателей
- •8.2 Операции над указателями
- •8.3 Сравнение указателей
- •8.4 Связь между массивом и указателем
- •9 Функции
- •9.1 Модульное программирование
- •9.2 Объявление функции
- •9.3 Формальные и фактические параметры функции
- •9.4 Локальные и глобальные переменные
- •10 Элементы объектно-ориентированного программирования
- •10.1 Инструментальное программное обеспечение
- •10.2 Технологии программирования
- •10.3 Создание класса
- •11 Полиморфизм
- •12 Этапы разработки программного обеспечения
- •12.1 Идея и цель объектно-ориентированного программирования
- •12.2 Основные понятия объектно-ориентированного программирования
- •12.3 Методы тестирования программных продуктов
- •Список литературы
3.7 Директива #define
Если в программе возникает необходимость часто печатать или выводить на экран дисплея значение какой-либо переменной (или выполнять другие действия), то целесообразно ввести сокращенное обозначение с использование директивы #define, например
#define V printf("выполните ввод\n");
#define Pi 3.14
После этих директив в программе можно использовать операторы V и Pi.
3.8 Линейные программы на С/С++
В линейных программах операции выполняются последовательно и не зависят от конкретных значений входных данных. Например, вычисления по формулам.
Пример 3.8 Сумма чисел
Напишем программу, определяющую сумму двух целых чисел.
#include "stdafx.h"
#include<stdio.h>
#include<conio.h>
using namespace System;
int main(array<System::String ^> ^args)
{
int a,b,s;
printf("введите два целых числа\n");
scanf("%d %d",&a,&b);
s=a+b;
printf("сумма чисел = %d",s);
getch();
return 0;
}
Рассмотрим оператор вывода printf("сумма чисел = %d",s);
В кавычках задается строка формата, состоящая из комментария сумма чисел = и спецификатора %d, так как получаем целочисленный результат s как сумму двух целых чисел a и b.
Задание 3.8
Перепишите программу примера 8 для случая суммы двух вещественных чисел.
3.9 Библиотека математических функций
Для выполнения более сложных расчетов необходимо подключение библиотеки математических функций:
#include<math.h>
В таблице 9 даны описания некоторых наиболее часто используемых функций математической библиотеки С++.
Таблица 9 – Математические функции (файл math.h)
Запись |
Значение |
abs(x) |
Возвращает абсолютное значение комплексного числа. |
acos(x) |
Вычисляет арккосинус (радианы). |
asin(x) |
Вычисляет арксинус (радианы). |
atan(x) |
Вычисляет арктангенс (радианы). |
ceil(x) |
ближайшее целое, не меньшее x |
cos(x) |
Вычисляет значение косинуса. |
cosh(x) |
Вычисляет значение гиперкосинуса. |
exp(х) |
Вычисляет экспоненциальное значение e в степени х. |
floor(x) |
Наибольшее целое, не превышающее х |
fmod(x, y) |
Остаток от деления нацело х на у. |
log(х) |
Вычисляет натуральный логарифм аргумента. |
log10(х) |
Вычисляет десятичный логарифм аргумента. |
norm(х) |
Вычисляет квадрат абсолютного значения аргумента. |
pow(х, y) |
|
sin(х) |
Вычисляет синус (х в радианах). |
sinh(х) |
Вычисляет гиперсинус. |
sqrt(х) |
Вычисляет положительный квадратный корень. |
tan(х) |
Вычисляет тригонометрический тангенс (х в радианах). |
tanh(х) |
Вычисляет гиперболический тангенс. |
Пример 3.9 Вычисление площади треугольника
Напишем программу вычисления площади треугольника по формуле Герона:
,
где a, b, c – длины сторон треугольника, p – полупериметр.
В примере 6 был выполнен ввод длин трех сторон треугольника. Откройте файл проекта и продолжите написание кода.
Код программы:
#include "stdafx.h"
#include<stdio.h>
#include<conio.h>
#include<math.h>
using namespace System;
int main(array<System::String ^> ^args)
{
int a,b,c;
float p,s;
printf("введите длины трех сторон треугольника\n");
scanf("%d %d %d",&a,&b,&c);
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("площадь треугольника равна = %f",s);
getch();
return 0;
}
Задание 3.9
Выполните и поясните работу программы примера 3.9. Протестируйте программу при входных значениях сторон треугольника 3, 4 и 5. При любых ли значениях сторон треугольника программа будет выполнена? Протестируйте программу при значениях 1, 2, 4.
Выявленный недостаток программы будет устранен в следующей лабораторной работе.
Задание 3.10
Напишите программу для расчета амортизационных отчислений по формуле
где S0 – начальная стоимость имущества, SN – остаточная стоимость имущества, N – срок эксплуатации.
Вопросы для самоконтроля:
Что можно отнести к основным элементам языка С++?
Что такое управляющие символьные последовательности? Приведите примеры.
Что такое ключевые слова? Приведите примеры.
Что такое комментарии?
Необходимо ли переменную объявлять до ее использования?
Покажите, как переменной min присвоить значение 0.
Можно ли в одной инструкции объявить сразу несколько переменных?
Какие существуют в С++ простые базовые типы данных? Почему тип char (символьный) отнесен к целым? Почему нет логического типа данных, как, например тип Boolean в Pascal?
Что такое модификатор типа? Приведите примеры комбинаций базовых типов данных и модификаторов.
Расположите целые (long, int, char, shot) и вещественные (long double, float) типы по старшинству типов по следующему принципу: старший тип включает в себя все значения младшего типа как подмножество.
Как осуществляется объявление переменной?
Опишите структуру программы на С.
Что такое директива препроцессора. В чем смысл приставки пре?
С чего начинается выполнение C-программы?
Опишите формат функции вывода.
Что такое спецификатор формата? Приведите примеры.
Опишите формат функции ввода данных.
Какие группы операций определены над числовыми данными?
Объясните смысл операций инкремента и декремента. Приведите примеры. В чем заключается преимущество их использования?
Объясните смысл операции присваивания.
В программе объявлена переменная float x=10. Какое значение получит переменная х в результате вычисления следующих выражений?
x+=2
x/=10
x+=x+=1
