- •Язык программирования СИ
- •Обзор
- •Ранние разработки
- •ISO C ANSI C
- •Ключевые слова В С89 есть 32 ключевых слова:
- •Приоритет операций
- •Приоритет операций
- •Базовые типы данных языка С
- •Hello в стиле СИ
- •Использование переменных
- •Некоторые функции стандартного ввода-вывода
- •%[flags][width][.prec]type
- ••scanf() - форматный ввод с клавиатуры:
- ••//*********prog4.cpp*********
- •Вывод значений нескольких переменных
- •Условный оператор if
- •Условный оператор if
- •Логические операции
- •Таблицы истинности логических операций
- ••Операция "||" (ИЛИ) называется логическим сложением потому, что выполняется таблица истинности этой операции,
- •Пример с полной формой if
- •Пример с краткой формой if
- •Операции инкрементации и декрементации
- ••Операндом может быть именующее выражение, например, имя переменной.
- •Сложное присваивание
- •Операторы циклов
- •Оператор for
- •Пример
- •Оператор while
- •Пример
- •Оператор do while
- •Пример
- •Сравнение операторов циклов
- •Задача табулирования
- •Задача табулирования
- •Операторы
- •Операторы break и continue
- •Оператор continue
- •Переключатель switch
- •При выполнении этого оператора вычисляется выражение, стоящее в скобках после ключевого слова switch,
- •Калькулятор (правильный)
- •Массивы
- •В случае многомерных массивов показывают столько пар скобок , какова размерность массива, а
- •Элементам массива могут быть присвоены начальные значения:
- •//********* mass1_sum.cpp ***
- •Расположение массивов в памяти
- •Многомерные массивы
- ••В памяти многомерные массивы представляются как одномерный массив, каждый из элементов которого, в
- ••Программа инициализирует массив и выводит его элементы на экран.
- ••//Ввод массива
- ••//обработка массива ( сумма элем.)
- ••//вывод на экран
- •Указатели
- ••Теперь сделаем так, чтобы указатели на что-нибудь указывали:
- •Динамическая память
- •Освобождение памяти
- •Операции с указателями
- •Операции с указателями
- •Операции с указателями
- •Операции с указателями
- •Методы доступа к элементам массивов
- •Методы доступа к элементам массивов
- •Функции
- •функции
- •Функции
- •Определение функции задает тип возвращаемого значения, имя функции, типы и число формальных параметров,
- ••В языке СИ нет требования, чтобы определение функции обязательно предшествовало ее вызову. Определения
- •Функции
- ••В соответствии с синтаксисом языка СИ определение функции имеет следующую форму:
- •Функции ( возвращаемое значение)
- •Список-формальных-параметров
- •Формальные параметры
- •Передача параметров по значению
- ••Пример:
- •Передача параметров по указателю
- •• /* Правильное использование параметров */
- •Передача параметров по ссылке
- •Ввод массива
- •Вывод массива
- •Обработка массива
- •Вызов функций
- •Функция main
- •Функция strih
- •Функция calc
- •Прототипы функций
- •Область действия ( видимость ) переменных
- •Автоматические и статические преременные
- •Динамические массивы
- •void outputarr(int *outarr, int n, char arrname[])
- •void createoutarr(int arr1[], int arr2[], int outarr[], int n)
- •void main()
- •inputarr(x, Size, "x"); inputarr(y, Size, "y"); inputarr(z, Size, "z");
- •Освобождение динамической памяти
- •Передача имен функций в качестве параметров
- •Параметры со значениями по
- •Массив указателей на функции
- •Часто указатели на функцию становятся громоздкими. Работу с ними можно упростить, если ввести
Пример
int i; i=1; do
{
cout<<i;
i++;
} while( i<=5);
На экране увидим: 12345
Сравнение операторов циклов
int i; |
int i; |
int i; |
for( i=1;i<=5; i++) |
i=1; |
i=1; |
cout<<i; |
while( i<=5) |
do |
|
{ |
{ |
|
cout<<i; |
cout<<i; |
|
i++; |
i++; |
|
} |
} while( i<=5); |
Задача табулирования
Задача табулирования
•//********* for ( format output) ****************
•#include<iostream.h>
•#include<iomanip.h>
•void main(viod)
•{
•float x,y,xn,xk,dx; int n;
•cout<<"xn= "; cin>>xn;
•cout<<"xk= "; cin>>xk;
•cout<<"n= "; cin>>n;
• dx=(xk-xn)/(n-1); x=xn;
•cout<<setw(5)<<"i"<<setw(10)<<setprecision(3)
•<<"x"<<setw(10)<<setprecision(3)<<"y"<<endl;
•for( int i=0;i<n;i++,x+=dx)
•{ y=x*x;
•cout<<setw(5)<<i<<setw(10)<<setprecision(3)
•<<x<<setw(10)<<setprecision(3)<<y<<endl;
•}
•}
Операторы
•break
•continue
Операторы break и continue
Часто при возникновении некоторого события удобно иметь возможность досрочно завершить цикл.
Используемый для этой цели оператор break (разрыв) вызывает немедленный выход из циклов, организуемых с помощью операторов for, while, do-while, а также прекращение оператора switch.
#include <stdio.h> int main(void)
{
int i; for(i=1;i<10;i++)
{
if(i==5)
break; printf(“%d” ,i);
}
return 0;
}
На экране увидим 1234
Оператор continue
Оператор continue тоже предназначен для прерывания циклического процесса, организуемого операторами for, while, do- while. Но в отличии от оператора break, он не прекращает дальнейшее выполнение цикла, а только немедленно переходит к следующей интерации того цикла, в теле которого он оказался. Он как бы имитирует безусловный переход на конечный оператор цикла, но не за ее пределы самого цикла.
#include <stdio.h> int main(void)
{
int i; for(i=1;i<10;i++)
{
if(i==5)
continue; printf(“%d” ,i);
}
return 0;
}
На экране увидим 12346789
Переключатель switch
Оператор switch (переключатель) предназначен для принятия одного из многих решений. Он выглядит следующим образом:
•switch(целое выражение)
•{
•case константа1: оператор1;
•case константа2: оператор2;
•...
•...
•...
•case константаn: операторn;
• |
default |
: оператор; |
• |
} |
|