Ввод и вывод
Ввод и вывод
Ввод и вывод
Ввод и вывод
Пример программы с вводом/выводом в стиле языка С++
Пояснения к программе
Введение в программирование
Циклы и ветвления
Табулирование функции
Оператор цикла while
Составной оператор
Схема алгоритма программы 2.1.
Оператор цикла do while
Оператор цикла for
Оператор цикла for
Использование подпрограммы для вычисления функции f(x)
241.00K
Category: programmingprogramming

Ввод и вывод (язык C, лекция 2)

1.

Программирование и структуры данных
2007 г.
Лекция 2.
Ввод и вывод.
ЦИКЛЫ.
Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ
1

2. Ввод и вывод

Программирование и структуры данных
2007 г.
Ввод и вывод
Функция scanf() вводит данные из стандартного
входного потока stdin в переменные, адреса которых
задаются в виде аргументов. Функция имеет переменное
число параметров.
Форматированный ввод
scanf(“<строка_формата>”, аргумент[,<аргумент>]…);
Пример вызова функции scanf():
int k; float z; char simv;
scanf ("%c %d %f", &simv, &k, &z);
Эквивалентная последовательность операторов ввода
scanf ("%c", &simv);
scanf ("%d", &k);
scanf ("%f", &z);
Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ
2

3. Ввод и вывод

Программирование и структуры данных
2007 г.
Ввод и вывод
Строка описания формата ввода содержит спецификации
полей формата ввода (вывода).
• Некоторые спецификации полей формата ввода (вывода):
%d – целое десятичное число со знаком;
%u – целое десятичное число без знака;
%f – вещественное число;
%с – символ;
%s – строка символов.
• Аргументы вызова - адреса переменных, в которых будут
храниться введенные значения.
Символ & - операция получения адреса переменной.
Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ
3

4. Ввод и вывод

Программирование и структуры данных
2007 г.
Ввод и вывод
Функция
выводит символы и значения
выражений в стандартный выходной поток stdout. Функция
имеет переменное число параметров.
printf()
Форматированный вывод
printf(“<строка_формата>” [,<аргументы>]…);
Пример вызова функции printf():
printf ("\n%d%c класс - %d учеников.", t, simv, k + m);
Допустим,
int t=10; char simv=‘Б'; int k=20, m=5;
На экране появится текст:
10Б класс - 25 учеников.
Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ
4

5. Ввод и вывод

Программирование и структуры данных
2007 г.
Ввод и вывод
Строка описания формата вывода может содержать
- обычные символы,
- специальные управляющие символы,
- спецификации полей формата вывода значений
переменных или выражений, если есть аргументы.
• Некоторые специальные управляющие символы
\n – символ новой строки;
\t – символ табуляции;
Спецификации полей формата вывода аналогичны
спецификациям полей ввода.
• Аргументы вызова
выражения.
Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
-
имена
переменных
КГТУ (КАИ), кафедра АСОИУ
или
5

6. Пример программы с вводом/выводом в стиле языка С++

Программирование и структуры данных
2007 г.
Пример программы с вводом/выводом
в стиле языка С++
// Программа 1.2. Площадь прямоугольника
#include <iostream.h>
void main ()
{ float a, b,
s;
(в стиле С++)
// стороны прямоугольника
// площадь прямоугольника
cout << "\n Стороны прямоугольника = ";
cin >> a >>b;
s = a * b;
cout << "\n Площадь = “ << s;
// return ;
}
Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ
6

7. Пояснения к программе

Программирование и структуры данных
2007 г.
Пояснения к программе
• // - строчный комментарий, используется в С++,
наряду комментарием /* */.
• <iostream.h> - заголовочный файл, содержит
объявления стандартных объектов-потоков языка
С++:
cin – поток для ввода с клавиатуры;
cout - поток для вывода на экран;
>> - операция для чтения данных из потока;
<< - операция для вывода данных в поток.
Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ
7

8. Введение в программирование

Программирование и структуры данных
2007 г.
Введение в программирование
ЦИКЛЫ
Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ
8

9. Циклы и ветвления

Программирование и структуры данных
2007 г.
Циклы и ветвления
Цикл - для многократного повторения одних и тех же
действий над данными.
•Задача 2.1. Составить программу табулирования функции
f(x)= 3+2x ( шаг табулирования = 0.1).
/* Программа 2.1. Табулирование функции (в стиле С)
*/
#include <stdio.h>
main ()
{ int n, i;
/* количество строк, номер строки
float x;
/* текущее значение х
scanf (“%f %d”, &x, &n);
printf ("\n X
F(X) ");
i=1;
while (i <= n)
{
printf (“\n%5.2f %5.2f”, x, 3+2*x);
x = x + 0.1; i =i + 1;
}
return 0;
}
Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ
*/
*/
9

10. Табулирование функции

Программирование и структуры данных
2007 г.
Табулирование функции
• Тест. Вычислить 5 значений функции, начиная с х = 0.2.
• Вход:
0.2 5
Выход:
X
0.20
0.30
0.40
0.50
0.60
F(X)
3.40
3.60
3.80
4.00
4.20
• Пояснения к программе.
1. Вводится начальное значение величины х и количество
строк.
2. Выводится заголовок таблицы значений.
3. while - оператор цикла c предусловием. Позволяет
повторить действия в { } n раз, т.е. вычислить и вывести n
строк со значением функции. Переменная i – счетчик
текущей строки.
Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ
10

11. Оператор цикла while

Программирование и структуры данных
2007 г.
Оператор цикла while
• while – оператор цикла с предусловием
while (выражение - Условие)
оператор S;
Оператор S повторяется ≥ 0 раз, пока значение
выражения ≠ 0, т.е. пока истинно условие цикла.
• Схема работы оператора цикла while
У
нет (-)
да (+)
S
Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
Тело цикла
КГТУ (КАИ), кафедра АСОИУ
11

12.

Программирование и структуры данных
2007 г.
• Условие в циклах и ветвлениях - выражение языка
С в скобках.
• Значение выражения должно быть целым числом.
Условие истинно, если значение выражения ≠ 0,
ложно в противном случае.
• Примеры условий:
while ( a>0 )
while ( a )
while ( a!=0 )
while ( !a )
while ( a+b )
while ( a && b )
while (a > 0 || b >0)
Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
истинно, если а>0
истинно, если а ≠ 0
истинно, если а ≠ 0
истинно, если а = 0
истинно, если а+b ≠ 0
истинно, если а ≠ 0 и b ≠0
истинно, если a > 0 или b > 0
КГТУ (КАИ), кафедра АСОИУ
12

13. Составной оператор

Программирование и структуры данных
2007 г.
Составной оператор
Оператор S в теле цикла может быть простой или
составной.
• Составной оператор ограничивается фигурными
скобками { }, состоит из одного или более операторов
любого типа.
Если в теле цикла должно быть более одного
простого оператора, то эти операторы нужно
объединить в составной оператор.
У
S
У
while (У)
S;
Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
S1
S2
while (У)
{ S1;
S2;
}
КГТУ (КАИ), кафедра АСОИУ
13

14. Схема алгоритма программы 2.1.

Программирование и структуры данных
2007 г.
Схема алгоритма программы 2.1.
• Схема алгоритма программы «Табулирование функции»
начало
Ввод x, n
i=1
нет
i<=n
да
Выв. x, f(x)
конец
x = x+0.1
i = i+1
Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ
14

15. Оператор цикла do while

Программирование и структуры данных
2007 г.
Оператор цикла do while
При n > 1 возможно использование цикла с постусловием.
• Оператор цикла с постусловием имеет вид
do
оператор S
while (выражение - Условие);
Оператор S повторяется ≥ 1 раз, пока истинно
условие цикла, т.е. значение выражения ≠ 0.
• Схема работы
оператора цикла
Тело
S
цикла
do while
да
У
нет
Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ
15

16. Оператор цикла for

Программирование и структуры данных
2007 г.
Оператор цикла for
• Оператор цикла for удобно использовать, если
известно количество повторений цикла.
В программе «Табулирование функции» заменим
оператор
цикла
while
оператором
for:
• for ( i = 1; i<=n; i++)
{ printf (“\n%5.2f %5.2f”, x, 3+2*x);
x = x + 0.1;
}
• или короткая форма записи
for ( i = 1; i<=n; x += 0.1, i++)
printf (“\n%5.2f %5.2f”, x, 3+2*x);
, - операция последовательного вычисления.
Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ
16

17. Оператор цикла for

Программирование и структуры данных
2007 г.
Оператор цикла for
• Оператор цикла for имеет вид
for ([выражение1]; [выражение2]; [выражение3])
оператор S;
Схема работы оператора цикла for
Эквивалентный
выраж.1
оператор while:
выраж.2
выражение1;
+
while ( выражение2 )
S
{ оператор S;
выражение3;
выраж.3
}
Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
КГТУ (КАИ), кафедра АСОИУ
17

18. Использование подпрограммы для вычисления функции f(x)

Программирование и структуры данных
2007 г.
Использование подпрограммы для вычисления функции f(x)
/*Программа 2.2. Табулирование функции (в стиле С)
/*
*/
Подпрограмма вычисления функции f(x)
#include <stdio.h>
float f ( float z )
{ float y;
y = 3 + 2*z;
return y;
*/
/* возврат значения функции
*/
}
void main ()
{ int n, i;
/* количество строк, номер строки*/
float x;
/* текущее значение х
*/
scanf (“%f %d”, &x, &n);
printf ("\n X
F(X) ");
i = 1;
while (i <= n)
{printf (“\n%5.2f %5.2f”, x, f ( x ) ); /* вызов функции
*/
x = x + 0.1; i++;
}
}
float f ( float z )
{ return 3 + 2*z; }
Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.
/* возврат значения функции
КГТУ (КАИ), кафедра АСОИУ
*/
18
English     Русский Rules