Команда присваивания Команды ввода-вывода
Блоки, используемые при составлении блок-схем
Команда присваивания
Примеры использования команды присваивания
Странные команды присваивания
команды быстрого увеличения и уменьшения на единицу
Постановка задачи
Команды ввода-вывода
Команды ввода исходных данных с клавиатуры
Потоковый ввод данных
Потоковый ввод данных
Команды вывода данных на экран
Потоковый вывод
Потоковый вывод
Форматирование данных при использовании потокового вывода
Потоковый вывод
Потоковый вывод
Потоковый вывод
Форматный ввод
Форматы ввода
адреса ячеек памяти, в которые надо записать введенные значения.
Обязательные требования
Обязательные требования
пример
Форматный вывод
Форматы вывода
пример
Управление выводом данных
примеры
Постановка задачи
316.50K
Категория: ПрограммированиеПрограммирование

Лекция_4(ввод-вывод)_30.09.24

1. Команда присваивания Команды ввода-вывода

2. Блоки, используемые при составлении блок-схем

- Элементарное действие

3. Команда присваивания

• Команда присваивания служит для вычисления
выражения и записи результата в память
компьютера.
• Общий вид записи команды
Имяпеременной = выражение;
• Знак = читается как «присвоить». Конец любой
команды на языке Си фиксируется точкой с запятой.
c = a + b;
запишет
/* вычислит сумму a и b и
результат в c */

4. Примеры использования команды присваивания

• команда присваивания, которая позволяет
вычислить расстояние между двумя точками на
плоскости с координатами (х1,у1)и (х2, у2).
d=sqrt(pow(x1-x2,2)+pow(y1-y2,2));
• последовательность команд присваивания,
обеспечивающих обмен значениями переменных х
и у в памяти компьютера.
• с=х; // значение х копируется в с
х=у; // значение у копируется в х
у=с; //содержимое с записывается в у

5. Странные команды присваивания

• i = i + 1;
бессмысленно с точки зрения математики.
С точки зрения информатики эта команда
служит для увеличения значения
переменной i на единицу.
Буквально это означает: взять старое
значение переменной i, прибавить к нему
единицу и записать результат в ту же
переменную i.

6. команды быстрого увеличения и уменьшения на единицу

• (инкремент)
i ++;
++ i;
или
равносильно команде присваивания
i = i + 1;
• быстрого уменьшения на единицу (декремент)
i - -; или
- - i;
что равносильно команде присваивания
i = i - 1;

7. Постановка задачи

вычисление площади
треугольника по
формуле:
#include <stdio.h>
#include<math.h>
# using namespace std;
int _tmain()
{ /* объявление переменных, используемых в
программе */
float a, b, c, p, S;
scanf(“%f%f%f”,&a,&b,&c);/*ввод исходных данных*/
S p( p a)( p b)( p c)
/* вычисление полупериметра */
Где p полупериметр;
а,b,с - стороны
треугольника.
Исходные данные:
а = 1; b = 2; с = 0,5.
p = (a + b + c) / 2;
/* вычисление площади треугольника */
S = sqrt(p * (p - a) * (p -b) * (p - c));
printf(“площадь треугольника= %f\n“,S);
return 0;
}

8.

9. Команды ввода-вывода

• Команды ввода-вывода данных служат для
обмена информацией между внутренней
памятью компьютера и внешними
устройствами (монитор, клавиатура,
принтер, накопители на жестких и гибких
магнитных дисках и др.).

10. Команды ввода исходных данных с клавиатуры

• Изображение в блоксхеме
• Команда ввода
обеспечивает чтение
данных с клавиатуры,
преобразование их из
внешнего
представления во
внутреннее и
присваивание значений
переменным,
указанным в ее списке.

11. Потоковый ввод данных


cin >> d;
такая команда в программе будет запрашивать ввод с клавиатуры
значения для переменной d.
...........
cin >> x1 >> x2 >> x3;
эта строка программы представляет запрос на ввод с клавиатуры
трех числовых значений.
Первое из них будет присвоено переменной x1,
второе значение предназначается для переменной x2,
третье значение - для переменной x3.

12. Потоковый ввод данных

Для обеспечения потокового ввода к программе
следует подключить заголовочный файл
iostream:
#include <iostream>
using namespace std;
int _tmain()
{
int i;
float f;
double d;
..........
cin >> i >> f >> d;
……..}

13. Команды вывода данных на экран

• В блок-схеме
• Команда вывода
преобразует значения
переменных и
вычисленные значения
выражений, указанных в
списке, из внутреннего
представления во
внешнее и выводит эти
значения на экран.

14. Потоковый вывод

организация потокового вывода информации на
стандартное устройство вывода экран (stdout)
осуществляется командой cout:
cout<<d; //вывод на экран значения переменной d
или
cout<<“d=“<<d; /*вывод на экран символов d= и
значения переменной d */

15. Потоковый вывод

Для организации потокового вывода информации на стандартное
устройство вывода экран (stdout) необходимо подключить
заголовочный файл iostream:
#include <iostream>
using namespace std;
int _tmain()
{
int i;
float f;
double d;
..........
cout << i+1 <<“
“<< f <<“
“<< f*d;
• Переход в начало следующей строки здесь осуществляется
путем включения в список вывода признака конца строки endl,
например:
cout << i+1 << endl << f <<“ “<< f*d;

16. Форматирование данных при использовании потокового вывода

• Форматирование данных при выводе в
потоковых классах выполняется тремя
способами: с помощью флагов,
манипуляторов и форматирующих методов.
• Использование флагов для управления
оператором ввода-вывода не совсем
удобно, более удобно использовать
манипуляторы форматирования.

17. Потоковый вывод

Манипуляторы встраиваются непосредственно в
операторы ввода-вывода.
Для их использования необходимо подключить
библиотеку iomanip с помощью директивы include:
#include "iomanip"
Рассмотрим некоторые из них:
• setw(n) - Определяет ширину поля вывода в n символов
• setprecision(n) - Определяет количество цифр (n-1) в
дробной части числа
• fixed – Вывод значений в формате с фиксированной
точкой
• left - Выравнивание по левой границе
• right - Выравнивание по правой границе
• dec, oct, hex - Вывод величин в разных системах
счисления

18. Потоковый вывод

#include "iostream"
#include "iomanip"
#include "cmath"
using namespace std;
int main( )
{
float x,y;
for(x=-3.0;x<=3;x=x+0.3)//цикл изменения переменной х
{
y=sin(x)*exp(x);
cout<<setw(5)<<setprecision(2)<<fixed<<x;
cout<<" y="<<setw(6)<<y<<endl;
}
return 0;
}

19. Потоковый вывод

20. Форматный ввод

Общий вид записи команды форматного ввода
scanf(“ список форматов“ ,cnиcoк адресов переменных);
форматы ввода
адреса переменных

21. Форматы ввода

%d
- ввод целого числа ( для переменной
типа
int )
%f
- ввод вещественного числа ( для
переменной типа float)
%lf
- ввод длинного вещественного
числа(для переменной типа
double
)

- ввод одного символа ( для переменной
типа char
)

22. адреса ячеек памяти, в которые надо записать введенные значения.

int a; - объявление переменной a
• А так
&a - адрес памяти переменной a

23.

Для обеспечения форматного ввода к программе следует
подключить заголовочный файл
stdio.h:
Например:
#include <stdio.h>
int _tmain()
{ int m;
float k;
double h;
..........
scanf("%i %f %lf", &m, &k, &h);

24. Обязательные требования

1. Количество форматов в строке должно
быть равно количеству адресов
переменных в списке;
2. тип переменных должен совпадать с
указанным форматом ввода;
3.Порядок следования форматов должен
соответствовать порядку следования
адресов переменных.

25. Обязательные требования

Контрпримеры
a и b - целые переменные, int a,b;
то
следующие вызовы функций ошибочны
scanf ( "%d%d", &a );
неясно, куда записывать второе введенное
число, нет второго адреса;
scanf ( "%d%d", &a, &b, &c );
значение для переменной c не будет введено,
так как для нее не задан формат;
scanf ( "%f%f", &a, &b );
нельзя вводить значения для целых
переменных по вещественному формату.

26. пример


пример
Пусть в задаче определены следующие исходные данные:
а = 4;
х = 3,8; у =1,2-104;
к=5;
т = 74
#include<stdio.h>
main()
{
int a, k, m;
float x, y;
// Оператор ввода:
scanf(“%d%f%f%d%d”, &a, &х, &у, &k, &m);
…………………..
}
• Вызывает
образом:
чтение
данных с клавиатуры,
4 3.8
список форматов
1.2Е4
набранных
следующим
5 74 [Enter]
соответствует описанию переменных в программе:

27. Форматный вывод

• Форматный вывод результатов на
стандартное устройство вывода (stdout),
которым по умолчанию является экран дисплея,
осуществляется с помощью функции printf.
• Общий вид записи команды
printf (“ список форматов”, cnиcoк имен
переменных и выражений);

28. Форматы вывода

• %d - вывод значения переменной целого
типа (int)
• %f - вывод значения переменной
вещественного типа(float)
• %ld - вывод значения переменной типа
вещественного длинного (double)
• %с - вывод значения переменной типа
одного символа (char)
• %s - вывод символьной строки
• \n - переход в начало новой строки на
экране (аналог endl в команде cout)

29. пример

printf(“Выходные данные:\n”);
printf(“K=%d \n
y=%f\n”, К,
7.0/10);
выводят на экран результаты в следующем
виде:
Выходные данные:
К=13
у=0.7

30. Управление выводом данных

В команде вывода printf формой вывода числа можно управлять . Для этого в формате после знака
% можно писать число, которое будет обозначать количество значащих цифр в выводимом
числе. Если выводимое число дробное , необходимо писать два числа, отделяя их друг от друга
точкой. Второе число будет указывать на количество цифр в дробной части выводимого числа.
%m.nf
m-число, количество знакомест на экране
n- кол-во знаков после десятичной точки
Например, при записи оператора
printf( “K=%3d у=%5.2f”, 8+3, 7./10 );
результаты отображаются на экране в следующем виде:
К= 11 у = 0.70

31. примеры

#include <stdio.h>
int _tmain()
{
int i, а, с, b;
float F;
double D;
printf(“ %d %f %lf", i+1, F, F*D);
……………….
printf ( "Результат: %d + %d = %d \n", a, b, c );

32. Постановка задачи

вычисление площади
треугольника по формуле:
#include <stdafx.h>
#include<math.h>
#include <iostream>
int _tmain()
{ setlocale (0,”RUS”);
/* объявление переменных, используемых в программе */
float a, b, c, p, S;
/*Вывод текстового заголовка-приглашения*/
printf(“Введите исходные данные ”);
S p( p a)( p b)( p c)// оператор ввода
Где p - полупериметр;
а,b,с - стороны треугольника.
Исходные данные:
а = 1; b = 2; с = 0,5.
scanf(“%f %f %f”,&a, &b,&с);
/* вычисление полупериметра */
p = (a + b + c) / 2;
/* вычисление площади треугольника */
S = sqrt(p * (p - a) * (p -b) * (p - c));
//Вывод на экран результата с комментарием
printf(“Площадь треугольника
S=%5.2f”, S);
return 0;
}

33.

При выполнении команды scanf программа
останавливается и переходит в режим ожидания
набора исходных данных с клавиатуры. В этот
момент надо набрать на клавиатуре, например:
1 2 0.5 [Enter]
После нажатия клавиши [Enter] программа
продолжит выполнение следующих команд и
выведет результат на экран монитора
в
следующем виде:
Площадь треугольника S = 3.87
English     Русский Правила