- •История языков программирования от машинного кода до современных языков структурного программирования.
- •Понятие о синтаксисе языка программирования. Основные типы данных языка с.
- •Цикл с выходом из середины. Привести блок схему и примеры реализации.
- •Что такое вложенные циклы? Проанализировать работу программы, содержащей вложенные циклы.
- •Итерационные алгоритмы. Привести примеры реализации итерационных алгоритмов в задачах вычисления суммы бесконечного ряда с заданной точностью.
- •Область видимости и "время жизни" переменных. Использование статических переменных в функции. Привести примеры.
- •Перегрузка функций. Пример реализации перегруженной функции.
-
История языков программирования от машинного кода до современных языков структурного программирования.
Fortran (В 1954 году компания IBM создала язык Fortran (formula translator) , его основу составляли арифметические операторы мат. выражений. Программировать на нем было не просто.)
COBOL (был изобретен в конце 1959 года. Этот язык был ориентирован на задачи бизнеса, также был аппаратно независим)
АЛГОЛ (Изобретен в 1958 году, это алгометрический язык программирования , в нем была доведена до завершения сама концепция операторных алгометрических языков программирования)
BASIC (. Сначала не имел ни кампилятора ни интерпритатора , они появились только в 1975 году. Самым популярным был М-BASIC – первый успех Microsoft)
PASCAL (Создан в 1970 году, был придуман для обучения студентов)
C++ (Разработан в 1971 году, главные преимущества – скорость и удобство, центральная идея – указатели)
-
Алгоритмический язык С — язык компилируемого типа. Структура программы на языке С++. Стадии получения загрузочного модуля в С/C++.
Программа на языке С++ состоит из директив препроцессора, указаний компилятору, объявлений переменных и/или констант, объявлений и определений функций.
Язык Си – компилирующего типа. Текст программы на Си, для получения объектного модуля обрабатывается компилятором, причем компиляция выполняется в два прохода. При первом проходе обрабатываются строки директивы, начинающиеся со знака #, при втором - транслируется текст программы и создается объектный (машинный) код. Для получения загрузочного модуля необходимо подсоединить к нему соответствующие библиотечные модули.
-
Понятие о синтаксисе языка программирования. Основные типы данных языка с.
Синтаксис языка программирования — набор правил, описывающий комбинации символов алфавита, считающиеся правильно структурированной программой (документом) или её фрагментом.
Типы данных: целый ( int , short , long, unsigned int). Вещественный : ( double , float) char- символьный, bool- логический
-
Описание переменных и констант в языке С/C++.
Прежде чем использовать в программе какую-то переменную, надо дать ей описание, то есть сказать, какое имя имеет переменная и каков её тип. Вначале указывается тип переменной, а затем её имя. Например:
int k; // это переменная целого типа int
Инициализация переменных double a=3
В языке C++ есть 2 способа задания констант:
-
#define PI 3.14
-
const double PI=3.14;
-
Управление вводом/выводом в языке С/C++. Операторы ввода/вывода. Форматный вывод. Привести примеры.
Описание объектов для управления вводом-выводом содержится в дерективе предпроцессора <iostream>.
Операторы ввода вывода:
Cout – оператор вывода
<< - вывод в поток
Endl- перевод на новую строку
Cin – оператор ввода
>> - операция потокового ввода
Форматный вывод:
Int a=5, b=2;
Cout <<”a/b=”<<endl;
…………………………..
2-будет ответом т.к целый тип данных
Float c=5, d=2;
Cout<<”c/d=”<<endl;
……………………………………
2,5 будет ответом т.к. вещественный тип данных
Cout<<a%b<<endl;
……………………………
Ответом будет 1 т.к. это остаток от деления 5/2
-
Управляющие последовательности, манипуляторы, используемые при форматном выводе в языке С/C++. Представление не изображаемых символов. Привести примеры.
Управляющие последовательности:
Символ |
Описание |
\r |
возврат каретки в начало строки |
\n |
новая строка |
\t |
горизонтальная табуляция |
\v |
вертикальная табуляция |
\» |
двойные кавычки |
\’ |
апостроф |
\\ |
обратный слеш |
\0 |
нулевой символ |
\? |
знак вопроса |
\a |
сигнал бипера (спикера) компьютера |
Таблица 1 — Управляющие символы С++ |
Манипуляторы:
Манипулятор |
Назначение |
Ввод/вывод |
dec |
Ввод/вывод данных в десятичной форме |
ввод и вывод |
endl |
Вывод символа новой строки с передачей в поток всех данных из буфера |
вывод |
ends |
Вывод нулевого символа |
вывод |
flush |
Передача в поток содержимого буфера |
вывод |
hex |
Ввод/вывод данных в шестнадцатиричной системе |
ввод и вывод |
oct |
Ввод/вывод данных в восьмеричной форме |
ввод и вывод |
resetiosflags(long f) |
Сбрасывает флаги, указанные в f |
ввод и вывод |
setbase(int base) |
Устанавливает базу счисления равной параметру base |
вывод |
setfill(int ch) |
Устанавливает символ заполнения равным ch |
вывод |
setiosflags(long f) |
Устанавливает флаги, указанные в f |
ввод и вывод |
setprecision(int p) |
Устанавливает число цифр после запятой |
вывод |
setw(int w) |
Устанавливает ширину поля равной w |
вывод |
ws |
Пропускает начальный символ-разделитель |
ввод |
Таблица: Манипуляторы ввода/вывода С++ |
-
Арифметические операции языка С/C++. Синтаксис операторов. Операции увеличения ++ и уменьшения --. Привести примеры реализации.
Арифметические операции:
+ — сложение;
- — вычитание;
* — умножение;
/ — деление;
% — остаток от деления.
Операторы:
Составной оператор – {...}
============================================
-
Оператор обработки исключений
-
try { <операторы> }
-
catch (<объявление исключения>) { <операторы> }
-
catch (<объявление исключения>) { <операторы> }
-
...
-
catch (<объявление исключения>) { <операторы> }
===================================
Условный оператор
if (<выражение>) <оператор 1> [else <оператор 2>]
Оператор-переключатель
switch (<выражение>)
{ case <константное выражение 1>: <операторы 1>
case <константное выражение 2>: <операторы 2>
...
case <константное выражение N>: <операторы N>
[default: <операторы>]
}
Оператор цикла с предусловием
while (<выражение>) <оператор>
Оператор цикла с постусловием
do <оператор> while <выражение>
Оператор пошагового цикла
for ([<начальное выражение>];
[<условное выражение>];
[<выражение приращения>])
<оператор>
Операции увеличения ++ и уменьшения --. Привести примеры реализации.
for(i=0; i<n; i++) –например проход по строке
for(i=0; i<n; --i)- например проход по строке с конца для поиска последнего отрицательного элемента
-
Операции сравнения и логические операции в языке С/C++. Синтаксис операторов. Привести примеры реализации. Приоритет операций для языка С.
Операции сравнения: >, >= больше, больше равно
<, <= меньше , меньше равно
== равно ( не присваивание)
!= не равно
= присваивание
Логические операции:
Лог. Операция И: &&
Лог. Операция ИЛИ: ||
Лог. Операция Не: !
Примеры:
for(i=0; i<n; i++)
if(f[i]==0)
w++;
Приоритеты:
Порядок выполнения операций может регулироваться с помощью круглых скобок.
-
Стандартные математические функции языка программирования С/C++. Привести примеры использования.
sqrt(a) |
корень квадратный из а, причём а не отрицательно |
sqrt(9.0)=3.0 |
pow(a, b) |
возведение а в степень b |
pow(2,3)=8 |
exp(a) |
вычисление экспоненты еа |
exp(0)=1 |
sin(a) |
a задаётся в радианах |
|
cos(a) |
a задаётся в радианах |
|
log(a) |
натуральный логарифм a(основанием является экспонента) |
log(1.0)=0.0 |
Double x,y;
Cout<<”x=”;
Cin>>x;
Y=pow(x,3);
Cout<<”y=”<<y<<endl;
-
Структурный подход к программированию и его реализация в языке С/C++. Рассмотреть структуры языка С/C++, позволяющие сделать единичный, двойной и множественный выбор.
Структу́рное программи́рование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков.
Одиночный выбор:
For(i=0; i<n; i++)
If(f[i]==0)
Break;
Двойной выбор:
For(i=0; i<n; i++)
If(f[i]==0)
Break;
Else
K++;
Множественный выбор (switch):
// форма записи оператора множественного выбора switch
switch (/*переменная или выражение*/)
{
case /*константное выражение1/*:
{
/*группа операторов*/;
break;
}
case /*константное выражение2*/:
{
/*группа операторов*/;
break;
}
//. . .
default:
{
/*группа операторов*/;
}
}
На начальном этапе анализируется выражение или переменная. После чего осуществляется переход к той ветви программы, для которой значение переменной или выражения совпадает с указанным константным выражением. Далее выполняется оператор или группа операторов пока не встретится зарезервированное слово break или закрывающая фигурная скобочка. Если значение переменной или выражения не совпадает ни с одним константным выражением, то передается управление ветви программы содержащей зарезервированное слово default. После чего выполняется оператор или группа операторов данной ветви. Сейчас рассмотрим задачу с использованием оператора выбора switch.
-
Базовые конструкции структурного программирования в С/C++. Оператор switch. Привести синтаксис и пример использования оператора в программе.
Как уже было отмечено выше, любую программу можно составить только из структур трех типов: следования, ветвления и цикла (это базовые конструкции).
-
Следованием называется конструкция, представляющая собой последовательное выполнение двух или более операторов (простых или составных).
-
Ветвление задает выполнение либо одного, либо другого оператора в зависимости от выполнения какого-либо условия.
-
Цикл задает многократное выполнение оператора.
switch
Позволяет осуществить выбор среди нескольких фрагментов кода, в зависимости от значения целочисленного выражения.
Множественный выбор (switch):
// форма записи оператора множественного выбора switch
switch (/*переменная или выражение*/)
{
case /*константное выражение1/*:
{
/*группа операторов*/;
break;
}
case /*константное выражение2*/:
{
/*группа операторов*/;
break;
}
//. . .
default:
{
/*группа операторов*/;
}
}
=========или====================
{
Case 1;
Case 2;
Do_something(x,a);
Break;
Case 3;
Do_something_else(a);
Case 4;
Do_nice_things(a,x);
Break;
Default;
Do_something_by_default;
}
-
Операторы повторения в С/C++. Привести блок схемы и примеры реализации операторов цикла. Дать рекомендации по выбору наилучшего оператора цикла для конкретного случая.
Есть два типа циклов: типа «пока» и типа «n-раз».
Пример: увеличить число пока оно не станет равно 5ти.
Int i=1;
While (i<5)
{ cout<<i<<” “;
I++;
На экран выведет «1;2;3;4;»
Int i=1;
Do
{ i++
Cout<<i<<” ”;
} while(i<0);//пост проверка
Такой цикл выполнится 1 раз
На экран выведет «2»
-
Циклы с предусловием и с постусловием в С/C++. Объяснить различия. Привести блок схемы и примеры реализации.
С пред условием(While)
Int i=1;
While (i<5)
{ cout<<i<<” “;
I++;
На экран выведет «1;2;3;4;»
С пост условием(do … While)
Int i=1;
Do
{ i++
Cout<<i<<” ”;
} while(i<0);//пост проверка
Такой цикл выполнится 1 раз
На экран выведет «2»
Различие состоит в том что на экран будет выводиться разное.