
- •2. Общие рекомендации к выполнению и требования к оформлению контрольной работы
- •3. Темы заданий для выполнения контрольной работы
- •4. 1. Базовые средства языка
- •Алфавит языка
- •Ключевые слова языка
- •Идентификаторы
- •Комментарии
- •4.1.5. Типы данных Си
- •Логический тип
- •4.1.8. Операции и выражения
- •Операции присваивания
- •Арифметические операции
- •Логические операции
- •Операции отношения
- •Условная операция
- •Операция преобразования типа
- •Операция определения размера
- •4.1.9. Стандартные функции
- •4.1.10. Структура программы
- •4.1.11. Ввод и вывод данных
- •Функции ввода- вывода
- •Объектно-ориентированные средства ввода-вывода.
- •4.2. Операторы управления
- •4.2.1. Понятие алгоритма
- •4.2.2. Изображение алгоритма в виде блок-схемы
- •2.3. Составной оператор
- •2.4. Операторы ветвления
- •If (выражение) оператор;
- •4.2.5. Примеры программ
- •4.2.6. Оператор варианта
- •4.2.7. Алгоритмы циклической структуры
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Оператор цикла с параметром
- •Операторы передачи управления
- •4.2.8. Решение задач с использованием циклов
- •4.3. Обработка массивов
- •4.3.1. Описание массивов
- •4.3.2. Основные операции над массивами
- •4.3.3. Ввод-вывод элементов массива
- •4.3.4. Вычисление суммы элементов массива
- •4.3.5. Вычисление произведения элементов массива
- •4.3.6. Поиск максимального элемента и его номера
- •4.3.7. Сортировка элементов в массиве
- •4.3.8. Удаление элемента из массива
- •4.3.9. Решение задач с использованием массивов
- •4.4. Обработка матриц
- •4.4.1. Ввод-вывод матрицы
- •4.4.2. Примеры алгоритмов обработки матрицами
- •4.5.1. Передача параметров в функцию
- •4.5.2. Возврат результата с помощью оператора return
- •4.6. Указатели и динамические массивы
- •4.6.2. Операции * и & при работе с указателями
- •4.6.3. Операция присваивания указателей
- •4.6.4. Арифметические операции над адресами
- •4.6.5. Динамические массивы
- •4.6.6. Использование указателей в качестве аргументов функций
- •Литература
4.1.11. Ввод и вывод данных
Ввод-вывод данных в языке С++ осуществляется либо с помощью функций ввода-вывода в стиле С, либо с использованием библиотеки классов С++. Преимущество объектов С++ в том, что они легче в использовании. Функции ввода-вывода унаследованные от С более громоздкие, но подходят для задач с форматированным выводом данных.
Функции ввода- вывода
Функция
printf(строка форматов, список выводимых переменных)
выполняет форматированный вывод переменных, указанных в списке, в соответствии со строкой форматов. Функция
scanf(строка форматов,список адресов вводимых переменных)
выполняет ввод переменных, адреса которых указанны в списке, в соответствии со строкой форматов.
Строка форматов содержит символы, которые будут выводиться на экран или запрашиваться с клавиатуры и так называемые спецификации.
Спецификации это строки, которые начинаются символом % и выполняют управление форматированием:
% флаг ширина.точность модификатор тип
Параметры флаг, ширина, точность и модификатор в спецификациях могут отсутствовать.
Первой строкой программы, в которой будут применяться функции ввода-вывода языка С, должна быть директива
#include <stdio.h>
Заголовочный файл stdio.h содержит описание функций ввода-вывода.
ЗАДАЧА 1. Зная a, b, c – длины сторон треугольника, вычислить площадь S и периметр P этого треугольника.
Входные данные: a, b, c.
Выходные данные: S, P.
Для
вычисления площади применим формулу
Герона:
,
где r – полупериметр.
//ЗАДАЧА 1. Вариант первый.
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
int main()
{
float a,b,c,S,r; //Описание переменных.
//Вывод на экран символов a=.
printf("a=");
//Запись в переменную а значениия введенного
//с клавиатуры.
scanf("%f",&a);
printf("b="); scanf("%f",&b);
printf("c="); scanf("%f",&c);
r=(a+b+c)/2; //Вычисление полупериметра.
S=sqrt(r*(r-a)*(r-b)*(r-c)); //Вычисление площади.
//Вывод символов S=, значения S и символа табуляции.
//Спецификация %5.2f означает, что будет
//выведено вещественное число, под которое
//отводится 5 знаков, причем 2 из них после точки.
printf("S=%5.2f \t",S);
//Вывод символов p=, значения выражения 2*r
//и символа окончания строки \n.
printf("p=%5.2f \n", 2*r);
return 0;
}
Результат работы программы представлен на рис. 1.
Рис. 1. Результат работы программы к задаче 1.
//ЗАДАЧА 2.1. Вариант второй
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
int main()
{
float a,b,c,S,r;
//Вывод на экран строки символов.
printf("Vvedite a,b,c \n");
//Ввод значений списком.
scanf("%f%f%f", &a,&b,&c);
r=(a+b+c)/2;
S=sqrt(r*(r-a)*(r-b)*(r-c));
//Вывод результатов списком.
printf("S=%5.2f \t p=%5.2f \n", S,2*r);
return 0;
}
Результат работы программы представлен на рис. 2.
Рис. 2. Результат работы программы к задаче 1.
Объектно-ориентированные средства ввода-вывода.
Описание объектов для управления вводом-выводом содержится в заголовочном файле iostream.h. При подключении этого файла с помощью директивы
#include <iostream.h>
в программе автоматически создаются объекты-потоки3
cin для ввода с клавиатуры,
cout для вывода на экран,
а так же операции
помещения в поток <<,
чтения из потока >>.
С помощью объекта cin и операции >> можно присвоить значение любой переменной. Например, если переменная i описана как целочисленная, то команда cin>>i; означает, что в переменную i будет записано некое целое число, введенное с клавиатуры. Если нужно ввести несколько переменных, следует написать cin>>x>>y>>z;.Объект cout и операция << позволяют вывести на экран значение любой переменной или текст. Текст необходимо заключать в двойные кавычки. Допустимо применение специальных символов
\t - табуляция
\n – перевод на новую строку.
Запись cout<<i; означает вывод на экран значения переменной i. Команда
cout<<x<<”\t”<<y;
выведет на экран значения переменных x и y разделенные символом табуляции.
ЗАДАЧА 2. Известны плотность , высота h и радиус основания R цилиндрического слитка, полученного в металлургической лаборатории. Найти объем V, массу m и площадь S основания слитка.
Входные данные: , h, R.
Выходные данные: S, V, m.
Учитывая, что S=2R, V=R2h и m=V составим текст программы:
#include "stdafx.h"
#include <iostream.h>
#define pi 3.14159 //Опред. константы
int main()
{
double R,h,r,S,V,m; //Описание переменных.
cout<<"R="; //Вывод символов R=
cin>>R; //Ввод переменной R
cout<<"h="; cin>>h;
cout<<"r="; cin>>r;
S=2*pi*R; //Расчет площади
V=pi*R*R*h; //Вычисление объема
m=r*V; //Определение массы
//Вывод значений S, V, m.
cout<<"S="<<S; cout<<"\n V="<<V; cout<<"\n m="<<m;
}
Результат работы программы представлен на рис. 3.
Рис. 3. Результат работы программы к задаче 2.