Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИСТ 1 курс экзамен лиманова по тп 1-24 вопрос.docx
Скачиваний:
198
Добавлен:
10.01.2016
Размер:
333 Кб
Скачать
☆
  1. История языков программирования от машинного кода до современных языков структурного программирования.

Fortran (В 1954 году компания IBM создала язык Fortran (formula translator) , его основу составляли арифметические операторы мат. выражений. Программировать на нем было не просто.)

COBOL (был изобретен в конце 1959 года. Этот язык был ориентирован на задачи бизнеса, также был аппаратно независим)

АЛГОЛ (Изобретен в 1958 году, это алгометрический язык программирования , в нем была доведена до завершения сама концепция операторных алгометрических языков программирования)

BASIC (. Сначала не имел ни кампилятора ни интерпритатора , они появились только в 1975 году. Самым популярным был М-BASIC – первый успех Microsoft)

PASCAL (Создан в 1970 году, был придуман для обучения студентов)

C++ (Разработан в 1971 году, главные преимущества – скорость и удобство, центральная идея – указатели)

  1. Алгоритмический язык С — язык компилируемого типа. Структура программы на языке С++. Стадии получения загрузочного модуля в С/C++.

Программа на языке С++ состоит из директив препроцессора, указаний компилятору, объявлений переменных и/или констант, объявлений и определений функций.

  Язык Си – компилирующего типа. Текст программы на Си, для получения объектного модуля обрабатывается компилятором, причем компиляция выполняется в два прохода. При первом проходе обрабатываются строки директивы, начинающиеся со знака #, при втором - транслируется текст программы и создается объектный (машинный) код. Для получения загрузочного модуля необходимо подсоединить к нему соответствующие библиотечные модули.

  1. Понятие о синтаксисе языка программирования. Основные типы данных языка с.

Синтаксис языка программирования — набор правил, описывающий комбинации символов алфавита, считающиеся правильно структурированной программой (документом) или её фрагментом.

Типы данных: целый ( int , short , long, unsigned int). Вещественный : ( double , float) char- символьный, bool- логический

  1. Описание переменных и констант в языке С/C++.

Прежде чем использовать в программе какую-то переменную, надо дать ей описание, то есть сказать, какое имя имеет переменная и каков её тип. Вначале указывается тип переменной, а затем её имя. Например:

int k; // это переменная целого типа int

Инициализация переменных double a=3

В языке C++ есть 2 способа задания констант:

  1. #define PI 3.14

  2. const double PI=3.14;

  1. Управление вводом/выводом в языке С/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

  1. Управляющие последовательности, манипуляторы, используемые при форматном выводе в языке С/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

Пропускает начальный символ-разделитель

ввод

Таблица: Манипуляторы ввода/вывода С++

  1. Арифметические операции языка С/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)- например проход по строке с конца для поиска последнего отрицательного элемента

  1. Операции сравнения и логические операции в языке С/C++. Синтаксис операторов. Привести примеры реализации. Приоритет операций для языка С.

Операции сравнения: >, >= больше, больше равно

<, <= меньше , меньше равно

== равно ( не присваивание)

!= не равно

= присваивание

Логические операции:

Лог. Операция И: &&

Лог. Операция ИЛИ: ||

Лог. Операция Не: !

Примеры:

for(i=0; i<n; i++)

if(f[i]==0)

w++;

Приоритеты:

Порядок выполнения операций может регулироваться с помощью круглых скобок.

  1. Стандартные математические функции языка программирования С/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;

  1. Структурный подход к программированию и его реализация в языке С/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.

  1. Базовые конструкции структурного программирования в С/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;

}

  1. Операторы повторения в С/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»

  1. Циклы с предусловием и с постусловием в С/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»

Различие состоит в том что на экран будет выводиться разное.