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

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

1. Лекция 4. Команда присваивания Команды ввода-вывода

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. Потоковый ввод данных


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

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

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

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

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

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

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

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

Для организации потокового вывода информации на стандартное
устройство вывода экран (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;

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

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

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

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

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

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

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

18.

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

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

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

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

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

21. пример


пример
Пусть в задаче определены следующие исходные данные:
а = 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]
соответствует описанию переменных в программе:

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

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

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

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

24. пример

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

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

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

26. примеры

#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 );

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

вычисление площади
треугольника по формуле:
#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;
}

28.

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