Лекция 3 ПЕРВЫЕ ПРОГРАММЫ, ВВОД/ВЫВОД В ЯЗЫКЕ С++
Типичная программа на языке С # Директивы препроцессора Инструкции описания main ( ) Функция а ( ) Функция b ( ) {Операторы} Описания Выражения Управления Присваивание Вызов функции Пустой оператор
Препроцессор С++ Исходный код Компилятор Объектный код Компоновщик Исполняемый код Код начальной загрузки Библиотечный код Компилятор Объектный код Исполняемый код Код начальной загрузки Библиотечный код Компилятор Объектный код Исполняемый код Код начальной загрузки Библиотечный код Компилятор Объектный код Исполняемый код Код начальной загрузки Библиотечный код Препроцессор #include Директива указывает препроцессору добавить в программу содержимое файла stdio.h фактически на место строки #include предварительная обработка текста программы перед компиляцией
#include int main() { int n,m; printf("Сколько тебе лет ->"); scanf("%d", &n); printf("\nСколько месяцев тебе уже %d лет ->", n); scanf("%d", &m); printf("Твой возраст:%d месяцев\n", n*12+m); return 0; } Сколько тебе лет -> 18 Сколько месяцев тебе уже 18 лет -> 2 Твой возраст: 218 месяцев
#include int main(int argc, char* argv[]) { printf("Hello!" ); return 0; } Аргументы функции main()
float sum(float a, float b) { return a+b; } Прототип (объявление, описание) функции sum заголовок функции sum определение функции sum определение функции main #include float sum(float,float); int main() { float x,y; scanf("%f%f",&x,&y); printf("%2.2f",sum(x,y)); return 0; }
Ввод вывод в С/С++
Философия создания языков С++ - обеспечить легкий доступ к аппаратным средствам. Развитие ВТ – переход на новые процессоры и новые ОС. Для новых платформ разрабатываются новые компиляторы. Если программу можно перекомпилировать без изменения исходного кода – она называется переносимой. Если программа ориентирована на определенные аппаратные средства – она непереносима.
Библиотека stdio.h (язык С/C++) Подключение библиотеки stdio.h: #include // до функции main Форматный ввод: scanf("формат", ); формат перечень спецификаторов список ввода адреса переменных через запятую Форматный вывод: printf("формат", ); формат текст, содержащий спецификаторы список вывода выражения для вывода через запятую
Спецификаторы формата: %i, %d - ввод-вывод целого int % c - символ % s - строка символов % e - число с плавающей точкой, экспоненц. запись % f - число с фиксированной точкой % g – самая короткая запись вещественного числа % u - десятичное целое без знака (unsigned) % o, %p - восьмеричное целое без знака (используется, например, для указателей) % x - шестнадцатеричное целое без знака % модификаторы формата d - + # целое целое.целое
int x=10; printf("%5d,%5o,",x,x); printf("%+5d,%#5o,",x,x); printf("%-+5d,%-#5o,",x,x); printf("%-+5d,%-#5x,",x,x); printf("%f,%2.2f,%e",(float)x,(float)x, (float)x); , 10.00, e , +10 0xa, 10 12,
char x=65; printf("%-5c,%-5c,",x,x); A,A char x[]="опытный программист"; printf("%7s\n%-7s\n%7.4s\n%-7.4s",x,x,x,x); char x=65; printf("%5d%#5o%#5x",x,x,x); x41 Опытный программист Опыт
scanf("%d,%o,%x",&x,&y,&z); printf("%5d%#5o%#5x",x,y,z); 65,65, x x41 scanf("%d%o%x",&x,&y,&z); printf("%5d%#5o%#5x",x,y,z); , 0xffffffcc scanf("%d,%o,%x",&x,&y,&z); printf("%5d%#5o%#5x",x,y,z); Ошибка ввода Если форматы в функции scanf разделе- ны запятой, ввод данных через запятую!!!
int procent=27; printf("Только %d% изделий было изготовлено к сроку", procent); Результат работы: Только 27% изделий было изготовлено к сроку
Функции ввода/вывода scanf( ), printf( ) – ввод/вывод числовых и смешанных значений getchar( ), putchar( ) – ввод/вывод символов gets( ), puts( ) – ввод/вывод строк ch='a'; printf("%c, %c, %c, %c\n", ch, ch+1, ch+2, ch+3); Примеры: ch='a'; printf("%c, %c, %c, %c\n", ch, ch++, ch++, ch++); a, b, c, d d, c, b, a a b c d
cout
Для ввода/вывода строк используются: gets(str); puts(str); Прототипы: int puts(char*); char *gets(char *); char str[20],*ps; gets(str); ps=gets(str); puts(str);
#include int main() { cout
#include using namespace std; int main() { cout
#include int main() { std::cout
cout.put('a'); Cout
cout
cout
cin.get(); или getch(); ждут нажатия клавиши int i=0; char ch; while (1) {cin>>ch); if ('.'==ch) break; i++; } cout
ВСЕ