Презентация Обзор операций и базовых инструкций языка Си. (Тема 3) онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Обзор операций и базовых инструкций языка Си. (Тема 3) абсолютно бесплатно. Урок-презентация на эту тему содержит всего 123 слайда. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Обзор операций и базовых инструкций языка Си. (Тема 3)
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:123 слайда
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:1.28 MB
- Просмотров:68
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№3 слайд
![Программа, написанная на](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img2.jpg)
Содержание слайда: ▀ Программа, написанная на языке Си, состоит из одной или нескольких функций, причем одна функция обязательна имеет идентификатор (имя) main()
▀ Назначение функции main() – управление работой всей программы.
▀ Функции main(), как правило, не имеет параметров и не возвращает результат (наличие круглых скобок обязательно).
№7 слайд
![В языке С нет стандартных](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img6.jpg)
Содержание слайда: В языке С нет стандартных инструкций (операторов) для вывода сообщений на консоль (окно пользователя).
В языке С нет стандартных инструкций (операторов) для вывода сообщений на консоль (окно пользователя).
В языке С предусматриваются специальные библиотечные файлы, в которых имеются функции для этих целей.
Заголовочный файл с именем stdio.h (стандартный ввод–вывод), который должен быть включен в начало программы.
Для вывода сообщения на консоль используется функция printf().
Для работы с консолью включен заголовочный файл conio.h., который поддерживает функцию _getch(), извлекающую символ из потока ввода, т. е. она предназначенная для приема сообщения о нажатии какой-либо (почти любой) клавиши на клавиатуре.
С другими компиляторами, возможно, потребуется getch(), т.е. без префиксного нижнего подчеркивания.
№10 слайд
![Препроцессором называется](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img9.jpg)
Содержание слайда: Препроцессором называется программа, которая вызывается компилятором и обрабатывает исходную программу перед ее компиляцией.
Препроцессором называется программа, которая вызывается компилятором и обрабатывает исходную программу перед ее компиляцией.
Препроцессор различает специальные команды – директивы.
Препроцессор обеспечивает подключение текстов исходных модулей, формирование макроопределений, планирование условной компиляции.
№11 слайд
![Препроцессорные директивы](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img10.jpg)
Содержание слайда: Препроцессорные директивы начинаются с символа #, за которым следует наименование директивы, указывающее текущую операцию препроцессора.
Препроцессорные директивы начинаются с символа #, за которым следует наименование директивы, указывающее текущую операцию препроцессора.
#include < ID_файла.h>
где h – расширение заголовочных файлов.
stdio.h – содержит стандартные функции файлового
ввода-вывода;
conio.h – функции для работы с консолью (клавиатура,
экран монитора);
math.h – математические функции.
#include <stdio.h>
Вставляет в программу текст из файла stdio.h,
который находится в стандартных каталогах
(указанных компилятору, т.е. заданных в среде
разработки).
№12 слайд
![include quot ID файла.h quot](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img11.jpg)
Содержание слайда: #include "ID_файла.h"
где ID_файла символьная строка, определяющая путь
к файлу.
#include "My_file.h"
Вставляет в программу текст из файла My_file.h,
который находится в текущем каталоге проекта.
#include "С:\ My_file.h"
Подключает в программу текст из файла My_file.h,
который находится в заданном каталоге.
№14 слайд
![Второе основное назначение](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img13.jpg)
Содержание слайда: Второе основное назначение препроцессора – обработка макроопределений.
Второе основное назначение препроцессора – обработка макроопределений.
Макроподстановка имеет общий вид:
#define < ID > <строка>
Например: #define PI 3.1415927
В ходе препроцессорной обработки программы появление в тексте идентификатора PI везде заменяется значением 3.1415927.
№15 слайд
![. Операторы и выражения](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img14.jpg)
Содержание слайда: 3.4 Операторы и выражения
Выражение – это объект, состоящий из констант, идентификаторов переменных, обращений к функциям и операций, указывающих, что надо делать над объектами в этом выражении.
По количеству участвующих в них операндов различают операции:
унарные (с одним операндом);
бинарные (с двумя операндами);
тернарные (три операнда – условная операция).
№19 слайд
![. Понятие R-value и L-value](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img18.jpg)
Содержание слайда: 3.7 Понятие R-value и L-value
Данные в Си могут представляться литералами
и переменными (и те и другие хранят значения данных
в областях памяти). Это хранимое значение называется
R-value (read value), т.е. значение, которое можно
прочитать.
Значение адреса области памяти для хранения
значения переменной называется L-value (location
value), т.е. значение, которое определяет
местоположение.
№24 слайд
![. Операторы инкремента и](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img23.jpg)
Содержание слайда: 3.8 Операторы инкремента и декремента
Унарные операции инкремента (++) и
декремента (--) предназначены соответственно для
увеличения и уменьшения значения операнда на
единицу.
x=x#1; эквивалентно записи ##x;
(префиксная)
x##;
(постфиксная),
x=x+1; ++x; x++;
x=x-1; --x; x--;
Если эти операции используются в чистом виде, то
различий между префиксной и постфиксной формами
нет.
№25 слайд
![Если унарные операции](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img24.jpg)
Содержание слайда: Если унарные операции инкремента и декремента используются в выражении, то в префиксной форме (##x) сначала значение х изменится на единицу, а затем будет использовано в выражении.
Если унарные операции инкремента и декремента используются в выражении, то в префиксной форме (##x) сначала значение х изменится на единицу, а затем будет использовано в выражении.
В постфиксной (x##) – сначала значение используется в выражении, а затем изменяется на единицу.
№28 слайд
![. Приведение типов в](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img27.jpg)
Содержание слайда: 3.9 Приведение типов в выражениях
Правила преобразования арифметических операндов:
В выражении у операндов могут быть разные типы, тогда компилятор приводит все операнды в один тип в сторону увеличения байтов:
операнды char и short преобразуются к int;
операнды float преобразуются к double;
если один из операндов double, то второй операнд преобразуется к double, и результат будет double;
если один из операндов long, то второй операнд преобразуется к long, и результат будет long;
если один из операндов имеет тип unsigned то и другие преобразуются к unsigned;
№29 слайд
![Результат деления](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img28.jpg)
Содержание слайда: Результат деления целочисленных операндов:
Результат деления целочисленных операндов:
1/3 =0
Чтобы избежать ошибок необходимо явно изменять тип хотя бы одного операнда, т.е. записывать 1./3 ~ 0.333
Явное преобразование типов осуществляется, если перед выражением поставить в скобках идентификатор соответствующего типа. Вид записи операции: (тип) выражение;
(float)1/3 ~ 0.333
№30 слайд
![. Приведение типа при](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img29.jpg)
Содержание слайда: 3.10 Приведение типа при выполнении присваивания
При присваивании значение правой части преобразуется к типу левой, который и является типом результата.
Рассмотрим преобразование int в char:
char s; int j=327; s=j; //s=‘G’ или 71
32710 = 0x14716 = 0001 0100 01112
0100 01112 = 0x47=7110
№35 слайд
![Особенность операций](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img34.jpg)
Содержание слайда: Особенность операций конъюнкции и дизъюнкции – экономное последовательное вычисление выражений-операндов:
<выражение1> <операция><выражение2>
если выражение1 операции конъюнкция ложно, то результат операции – ноль и выражение2 не вычисляется;
если выражение1 операции дизъюнкция истинно, то результат операции – единица и выражение2 не вычисляется.
№36 слайд
![. Операция , запятая Данная](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img35.jpg)
Содержание слайда: 3.13 Операция , (запятая)
Данная операция используется при организации
строго гарантированной последовательности
вычисления выражений.
Форма записи:
выражение1, …, выражениеN;
выражения1,…,N вычисляются гарантированно
последовательно и результатом операции становится
значение выражения N.
Пример:
m=(i=1, j=i++, k=6, n=i+j+k);
получим последовательность вычислений: i=1, j=i=1,
i=2, k=6, n=2+1+6, в результате m=n=9.
№38 слайд
![Функция форматного вывода на](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img37.jpg)
Содержание слайда: Функция форматного вывода на экран printf описывается:
Функция форматного вывода на экран printf описывается:
printf ("управляющая строка", а1, а2, …, an);
Управляющая строка содержит объекты трех типов:
поясняющий текст;
список модификаторов форматов;
управляющие символы.
Количество и порядок следования форматов должен
совпадать с количеством и порядком следования
печатаемых объектов.
№39 слайд
![Основные модификаторы формата](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img38.jpg)
Содержание слайда: Основные модификаторы формата:
%d – десятичное целое число;
%c – один символ;
%s – строка символов;
%f – число с плавающей точкой,
десятичная запись;
%lf – число с плавающей точкой,
удвоенной точности;
%e – число с плавающей точкой в
экспоненциальной форме;
%p – указатель (адрес);
%о – восьмеричное целое число;
%x – шестнадцатеричное целое число.
№41 слайд
![В модификаторах формата](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img40.jpg)
Содержание слайда: В модификаторах формата функции printf() после символа %
В модификаторах формата функции printf() после символа %
можно указывать строку цифр, задающую минимальную ширину
поля вывода, например: %5d (для целых), %4.2f (две цифры после
запятой для поля, шириной 4 символа).
double u=56.45674;
printf("\n%lf", u);
printf("\n%4.2lf", u);
printf("\n%4.3lf", u);
printf("\n%5.1lf", u);
printf("\n%6lf", u);
Аргументами функции printf() могут быть переменные, константы,
выражения, вызовы функции. Главное, чтобы их значения
соответствовали заданной спецификации.
№42 слайд
![Управляют выводом специальные](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img41.jpg)
Содержание слайда: Управляют выводом специальные последовательности.
Управляют выводом специальные последовательности.
Например,
\n – новая строка
\t – горизонтальная табуляция
Если нужно напечатать сам символ %, то его нужно
указать 2 раза.
printf("Только %d%% предприятий не работало. \n",5);
Получим: Только 5% предприятий не работало.
Можно использовать функцию printf() для
нахождения кода ASCII некоторого символа.
printf("%c – %d\n", 'a', 'a');
Получим изображение и десятичный ASCII код символа
'a': a – 97
№44 слайд
![Для вывода данных могут](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img43.jpg)
Содержание слайда: Для вывода данных могут использоваться также
функцию puts, которая выводит на экран дисплея
строку символов, автоматически добавляя к ней
символ перехода на начало новой строки.
puts("Печатаемая строка.");
Функция putchar – выводит на экран дисплея один
символ без добавления символа '\n '.
putchar('A');
putchar(65);
№45 слайд
![. . Функции ввода Функция](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img44.jpg)
Содержание слайда: 3.14.2 Функции ввода
Функция форматированного ввода scanf описывается:
scanf ("управляющая строка", а1, а2, …, an);
Управляющая строка содержит только модификаторы форматов.
Аргументы (а1, а2, …, an) – адреса переменных, разделенные запятыми (перед именем переменной записывается символ &).
Исключение – строки символов.
№49 слайд
![Стандартные потоки Каждой](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img48.jpg)
Содержание слайда: Стандартные потоки
Каждой программе предоставляются три
стандартных потока, которые по умолчанию
соединены с консолью.
stdout – предназначен для вывода данных на консоль (с этим потоком используются функции printf, puts, putchar);
stdin – предназначен для ввода данных с консоли (scanf, gets, getchar);
stderr – предназначен для вывода сообщений об ошибках на консоль. Для работы с потоком используется функция void perror(const char* str), параметр str указывает на строку, содержащую сообщение об ошибке.
№50 слайд
![Функция scanf quot d quot ,](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img49.jpg)
Содержание слайда: Функция scanf("%d", &n); при вводе числа обращается к буферу ввода stdin, создаваемому ОС.
Если при выполнении функции scanf("%d", &n); ввести не цифру, а букву (строку), то scanf не извлечет ее из буфера. Программа не выдаст сообщений, но в дальнейшем это может привести к трудно диагностируемым ошибкам в работе.
Явная очистка буфера ОС: fflush(stdin);
№54 слайд
![include lt stdio.h gt include](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img53.jpg)
Содержание слайда: #include <stdio.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <process.h> //для очистки экрана
#include <locale.h> // подключение setlocale
/*
char *setlocale(int category, const char *locale);
Используется для установления или определения
текущей локали программы. Аргумент category
определяет, какая часть текущей локали программы
подлежит изменению.
LC_CTYPE – преобразование символов
*/
№55 слайд
![define Pi . define Pi . void](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img54.jpg)
Содержание слайда: #define Pi 3.1415926
#define Pi 3.1415926
void main () {
//Установка поддержки русского языка
setlocale(LC_CTYPE, "Russian");
double a, a1, a2, z1, z2;
system("cls");
puts("Введите значение угла a:");
fflush(stdin);
scanf_s("%lf", &a);
a1=2*pow(sin(3*Pi-2*a),2);
a2=pow(cos(5*Pi+2*a),2);
z1=a1*a2;
z2=(double)1/4-1./4*sin(5./2*Pi-8*a);
printf("\n Результаты работы: z1=%.4lf z2=%.4lf\n", z1,z2);
_getch(); }
№60 слайд
![include lt stdio.h gt include](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img59.jpg)
Содержание слайда: #include <stdio.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <process.h>
#include <windows.h> // для поддержки русского
#define Pi 3.1415926
char* Rus(const char* text);
char bufRus[255];
void main () {
double a, a1, a2, z1, z2;
system("cls");
puts(Rus("Введите значение угла a:"));
fflush(stdin);
scanf("%lf", &a);
№61 слайд
![a pow sin Pi- a , a pow cos](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img60.jpg)
Содержание слайда: a1=2*pow(sin(3*Pi-2*a),2);
a2=pow(cos(5*Pi+2*a),2);
z1=a1*a2;
z2=(double)1/4-1./4*sin(5./2*Pi-8*a);
printf(Rus("\n Результаты работы: z1=%.4lf z2=%.4lf\n"), z1, z2);
getch(); // Извлекает знак из буфера клавиатуры
}
char* Rus(const char* text) {
CharToOem(text, bufRus);
return bufRus;
}
№62 слайд
![Новые заголовки в программах](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img61.jpg)
Содержание слайда: Новые заголовки в программах на C++
При работе с библиотекой C++ в соответствии с
новым стилем вместо имен заголовочных
файлов указываются стандартные
идентификаторы, по которым компилятор
находит требуемые файлы.
Новые заголовки C++ являются абстракциями,
гарантирующими объявление соответствующих
прототипов и определений библиотеки языка
C++.
Поскольку новые заголовки не являются
именами файлов, для них не нужно указывать
расширение, а только имя заголовка в угловых
скобках.
№63 слайд
![Содержание заголовков нового](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img62.jpg)
Содержание слайда: Содержание заголовков нового стиля помещается в пространстве имен std. Традиционно имена библиотечных функций располагались в глобальном пространстве имен.
Содержание заголовков нового стиля помещается в пространстве имен std. Традиционно имена библиотечных функций располагались в глобальном пространстве имен.
Пространство имен (namespace) — это некая
объявляемая область, необходимая для того, чтобы
избежать конфликтов имен идентификаторов.
Чтобы пространство имен std стало видимым, используйте следующую инструкцию:
using namespace std;
Эта инструкция помещает std в глобальное пространство имен. После того как компилятор обработает эту инструкцию, вы сможете работать с заголовками как старого, так и нового стиля.
№65 слайд
![Тема . Операторы передачи](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img64.jpg)
Содержание слайда: Тема 4. Операторы передачи управления. Операторы цикла
4.1 Простой условный оператор
4.2 Синтаксис полного оператора условного выполнения
4.3 Условная операция
4.4 Примеры, реализующие ветвящиеся алгоритмы
4.5 Область видимости идентификатора
4.6 Спецификаторы классов памяти
№66 слайд
![. Составление циклических](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img65.jpg)
Содержание слайда: 4.7 Составление циклических алгоритмов
4.7 Составление циклических алгоритмов
4.7.1 Оператор с предусловием while
4.7.2 Оператор с постусловием do - while
4.7.3 Оператор с предусловием и коррекцией for
4.7.4 Пример программирования циклических
алгоритмов
4.8 Оператор выбора альтернатив (переключатель)
4.9 Оператор безусловного перехода
№67 слайд
![Управляющие операторы К](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img66.jpg)
Содержание слайда: Управляющие операторы
К управляющим операторам относятся:
операторы условного и безусловного перехода;
оператор выбора альтернатив (переключатель);
операторы организации циклов и передачи управления.
Допустима вложенность операторов. В
случае необходимости можно использовать
составной оператор – блок { }
№70 слайд
![Если есть вложенная](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img69.jpg)
Содержание слайда: Если есть вложенная последовательность операторов
if-else, то else связывается с ближайшим предыдущим
if, не содержащим else.
if (n>0)
if (a>b) z=a;
else z=b;
Если необходимо связать фразу else с внешним if, то
используем операторные скобки:
if (n>0)
{
if (a>b) z=a;
}
else z=b;
№71 слайд
![. Условная операция ?](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img70.jpg)
Содержание слайда: 4.3 Условная операция ?
Тернарная операция ? имеет следующее представление:
<выражение1> ? <выражение2> : <выражение3>;
если <выражение1> отлично от нуля (истинно), то
результатом операции является <выражение2>, в
противном случае – результатом операции является
<выражения3>.
Каждый раз вычисляется только одно из выражений.
№74 слайд
![Найти максимальное из трех](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img73.jpg)
Содержание слайда: Найти максимальное из трех чисел
#include<stdio.h>
#include<conio.h>
#include <locale.h>
void main () { setlocale(LC_CTYPE, "Russian");
double a, b, c, max;
puts("\n Введите a, b, c:");
scanf_s("%lf%lf%lf", &a, &b, &c);
max=a;
if(b>max) max=b; if(c>max) max=c;
printf("\n Для a=%4.2lf, b=%4.2lf, c=%4.2lf
максимальным является max=%4.2f", a, b, c,
max);
_getch(); }
№75 слайд
![Составить программу для](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img74.jpg)
Содержание слайда: Составить программу для вычисления составной функции. Самостоятельно выбрать необходимое количество исходных данных для того, чтобы в программе выполнялись все возможные ветви алгоритма. Перед выводом полученного результата программа должна сообщать о ветви, при прохождении которой он получен (или сообщить о том, что решения не существует).
№78 слайд
![. Область видимости](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img77.jpg)
Содержание слайда: 4.5 Область видимости идентификатора
Если переменная объявлена вне какого-либо
блока, то такая переменная называется
глобальной, в противном случае – локальной.
Областью видимости идентификатора
называется часть программы, в которой
можно сослаться на этот идентификатор.
Существуют четыре типа областей видимости:
блок;
функция;
прототип функции;
исходный файл.
№79 слайд
![Глобальные переменные видимы](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img78.jpg)
Содержание слайда: Глобальные переменные видимы внутри исходного файла, в котором они определены;
Глобальные переменные видимы внутри исходного файла, в котором они определены;
Локальные переменные видимы только внутри блока или функции, в которой они определены;
Параметры функции видны только внутри функции или объявления этой функции;
№81 слайд
![. Спецификаторы классов](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img80.jpg)
Содержание слайда: 4.6 Спецификаторы классов памяти
Класс памяти программного объекта определяет время
его существования (время жизни) и область видимости
(действия). Может принимать одно из значений:
auto - автоматический
extern - внешний
register - регистровый
static - статический .
Класс памяти и область видимости объектов
по умолчанию зависят от места их размещения в коде
программы.
№82 слайд
![Локальная переменная скрывает](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img81.jpg)
Содержание слайда: Локальная переменная скрывает любую переменную с тем же именем, объявленную вне этого блока.
#include <stdio.h>
// Сокрытие имен переменных
int n=1; //Глобальная
void main() {
printf("n=%d\n",n); //n=1
{ int n=2; //Локальная
printf("n=%d\n",n); //n=2
{n=3;
printf("n=%d\n",n); //n=3
}
} }
№83 слайд
![К скрытому глобальному имени](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img82.jpg)
Содержание слайда: К скрытому глобальному имени можно обратиться с помощью оператора разрешения области видимости ::
#include <stdio.h>
int n=1; //Глобальная
void main() {
printf("n=%d\n",n); //n=1
{ int n=2; //Локальная
printf("\n LOCAL n=%d GLOBAL n=%d \n", n, ::n);
//LOCAL n=2 GLOBAL n=1
} }
№84 слайд
![Время существования](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img83.jpg)
Содержание слайда: Время существования переменной или функции определяется как время, в течение которого эта переменная или функция хранится в памяти компьютера;
Время существования переменной или функции определяется как время, в течение которого эта переменная или функция хранится в памяти компьютера;
Глобальные переменные существуют в течение всего времени выполнения программы и хранятся в фиксированной области памяти программы, которая задается во время ее компиляции;
Если глобальная переменная не проинициализирована, то компилятор устанавливает ее значение в ноль;
№85 слайд
![Память для локальных](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img84.jpg)
Содержание слайда: Память для локальных переменных выделяется динамически во время исполнения программы. При вызове функции или входе в блок, в котором объявлены локальные переменные, память под эти переменные распределяется, а при возврате из функции или выходе из блока эта память освобождается;
Память для локальных переменных выделяется динамически во время исполнения программы. При вызове функции или входе в блок, в котором объявлены локальные переменные, память под эти переменные распределяется, а при возврате из функции или выходе из блока эта память освобождается;
Если локальная переменная не проинициализирована при ее объявлении, то ее начальное значение не определено.
№86 слайд
![. Составление циклических](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img85.jpg)
Содержание слайда: 4.7 Составление циклических алгоритмов
Под циклом понимается организованное
повторение некоторой последовательности
операторов.
Перечень разновидностей операторов
цикла:
оператор цикла с предусловием;
оператор цикла с постусловием;
оператор цикла с предусловием и коррекцией.
№91 слайд
![В коде цикла необходимо](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img90.jpg)
Содержание слайда: В коде цикла необходимо предусмотреть изменение величины выражения (для предотвращения зацикливания).
В коде цикла необходимо предусмотреть изменение величины выражения (для предотвращения зацикливания).
int i=5, j=0; int i=5, j=0;
while (i>0) while (i>0)
{ j++;} { j++; i--;}
№92 слайд
![Используя оператор break](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img91.jpg)
Содержание слайда: Используя оператор break можно досрочно завершить цикл.
Используя оператор break можно досрочно завершить цикл.
Присутствующий в теле цикла оператор break
прекращает выполнение цикла и передает
управление на следующий оператор, стоящий
после данного цикла.
int i=5, j=0;
while (i>0) {
j++;
if (j==2) break;
i--; }
№93 слайд
![Используя дополнительное](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img92.jpg)
Содержание слайда: Используя дополнительное условие и оператор continue можно досрочно прервать текущий шаг и передать управление на начало цикла.
Используя дополнительное условие и оператор continue можно досрочно прервать текущий шаг и передать управление на начало цикла.
При использовании оператора continue в
while часть цикла, расположенная после
continue, не выполняется, а управление сразу
передается на проверку условия.
№94 слайд
![int x - , y вар int x - , y](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img93.jpg)
Содержание слайда: int x=-10, y=0; //вар 2: int x=-2, y=1;
int x=-10, y=0; //вар 2: int x=-2, y=1;
while (x) {
++x;
if (!(x+y)) continue; // вар 2: x=-1 y=1 !(-1+1)
--y; }
x=-10 y=0 x=-9 -9+0=-9 y=-1
x=-9 y=-1 x=-8 -8+(-1)=-9 y=-2
x=-8 y=-2 x=-7 -7+(-2)=-9 y=-3
x=-7 y=-3 x=-6 -6+(-3)=-9 y=-4
……………………………………………………….
x=0 y=-10 после выхода из цикла
№100 слайд
![. . Оператор с предусловием и](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img99.jpg)
Содержание слайда: 4.7.3 Оператор с предусловием и коррекцией for
for (<выражение1>; <выражение2>; <выражение3>)
<код_цикла>;
выражение1 – инициализация счетчика (начальное значение);
выражение2 – условие продолжения счета;
выражение3 – увеличение счетчика;
выражения 1,2 и 3 могут отсутствовать (пустые выражения), но символы «;» опускать нельзя.
№105 слайд
![Особенности оператора for](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img104.jpg)
Содержание слайда: Особенности оператора
for
Оператор for решение о выполнении цикла принимает до начала его прохождения. Поэтому он может не выполниться ни разу.
Можно использовать символы.
for (let= 'z'; let>='a'; let--)
printf("Код ASCII=%d, символ %c\n", let, let);
На экран выводятся код и изображение
символа.
№106 слайд
![Особенности оператора for](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img105.jpg)
Содержание слайда: Особенности оператора
for
Операция "," позволяет включить в оператор for несколько инициализирующих или корректирующих выражений.
Операторы, записанные через "," ,
рассматриваются как один составной оператор.
for (i= 1, j=5; i<j; i++, j--) printf("\nHello");
i=1, j=5; 1<5; Hello; i++(2), j--(4)
i=2, j=4; 2<4; Hello; i++(3), j--(3)
i=3, j=3; 3<3; выход из цикла
№110 слайд
![. . Пример программирования](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img109.jpg)
Содержание слайда: 4.7.4 Пример программирования циклических алгоритмов.
Значение аргумента x изменяется от a до b с шагом h. Для каждого x найти значения функции Y(x), суммы S(x) и |Y(x)-S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры. Так как значение S(x) является рядом разложения функции Y(x), то значения S и Y для данного аргумента x должны совпадать в целой части и в первых двух-четырех позициях после десятичной точки.
№113 слайд
![include lt stdio.h gt include](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img112.jpg)
Содержание слайда: #include <stdio.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <process.h>
#include <locale.h>
void main () { setlocale(LC_CTYPE, "Russian");
double a, b, h, x, rez, y, s, delta;
int n, i, k;
system("cls"); fflush(stdin);
printf("Введите a:");
scanf_s("%lf", &a);
printf("Введите b:");
scanf_s("%lf", &b);
printf("Введите h:");
scanf_s("%lf", &h);
printf("Введите n:");
scanf_s("%d", &n);
№114 слайд
![printf quot n quot printf](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img113.jpg)
Содержание слайда: printf("\n");
printf("\n");
puts(" x | Y(x) | S(x) | Y(x)-S(x) |");
puts("----------------------------------------- ");
x=a;
while (x<=b){
s=0;
for (k=0;k<=n; k++) {
rez=1;
for (i=1;i<=2*k+1;i++)
rez*=i;
s+=pow(-1.,k)*pow(x,(2*k+1))/rez;
}
y=sin(x);
delta=fabs(y-s);
printf("\n %.2lf | %.5lf | %.5lf| %.5lf | \n", x, y, s, delta);
x+=h;
} _getch(); }
№117 слайд
![Значение выражения должно](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img116.jpg)
Содержание слайда: Значение выражения должно быть целого типа (символьного);
Значение выражения должно быть целого типа (символьного);
После вычисления оно сравнивается со значениями констант и при совпадении с одной из них выполняется передача управления соответствующему оператору;
В случае несовпадения значения выражения ни с одной из констант происходит переход на метку default, либо, при ее отсутствии, к оператору, следующему за оператором switch;
Управляющий оператор break позволяет организовать выход из оператора switch на первый выполняемый оператор, следующий после данной конструкции.
№120 слайд
![. Оператор безусловного](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img119.jpg)
Содержание слайда: 4.9 Оператор безусловного перехода
Оператор безусловного перехода goto < метка >;
предназначен для передачи управления на
оператор, помеченный меткой.
Метка представляет собой идентификатор с
символом «двоеточие» после него.
m1: ;
Наиболее характерный случай использования
оператора goto – выполнение выхода во вложенной
структуре при возникновении неисправимых ошибок
во входных данных.
№121 слайд
![Пример программа простейший](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img120.jpg)
Содержание слайда: Пример: программа – простейший калькулятор
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <process.h>
#include <locale.h>
void main () { setlocale(LC_CTYPE, "Russian");
double a, b, c;
char s;
m1:fflush(stdin);
puts("\nВведите операнд1, символ операции, операнд2:");
scanf_s("%lf%c%lf", &a, &s,1, &b);
№122 слайд
![switch s switch s case c a b](/documents_6/d7b0ec1fbbb91a742b3d122038b05a55/img121.jpg)
Содержание слайда: switch(s) {
switch(s) {
case'+': c=a+b; break;
case'-': c=a-b; break;
case'*': c=a*b; break;
case'/': c=a/b; break;
default: printf("\n Ошибка, повторите ввод!\n");
goto m1; }
printf("\n a %c b = %lf", s, c);
printf("\n Продолжим? (Y/y)\n");
s=_getch();
if((s=='Y')||(s=='y')) goto m1;
printf("\n The end\n");
_getch();
}
Скачать все slide презентации Обзор операций и базовых инструкций языка Си. (Тема 3) одним архивом:
Похожие презентации
-
Базовый ввод и вывод в Java. Операции языка Java. Операторы управления Java. Массивы в Java
-
ОПЕРАЦІЙНА СИСТЕМА UNIX 1. Загальні відомості і структура ОС UNIX 2. Основи роботи у UNIX 3. Типи оболонок 4. Маски 5. Трубопроводі UNIX - ст
-
Операционная система Windows. Программирование с использованием средств Win32 API. (Лекция 2)
-
Система ввода/вывода языка программирования. Лекция 12
-
Операции и выражения языка Си
-
Базовые понятия языка Си
-
Стандартные математические функции языка CLIPS
-
Базовые понятия языка Си. Директива предпроцессора include. Функция main, функция printf
-
Базовые элементы языка С
-
Основные инструкции языка Visual Basic