Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика. Шпаргалка. С++

.docx
Скачиваний:
317
Добавлен:
31.03.2015
Размер:
445.42 Кб
Скачать

Ответы на экзаменационные вопросы по информатике:

Вопрос 1

Информация. Информационные революции. Информационные технологии. Информатика.

1)Информация - сведения о чём-либо, независимо от формы их представления.

2) Информационные революции.

В истории развития цивилизации произошло несколько информационных революций — преобразований общественных отношений из-за кардинальных изменений в сфере обработки информации.

Первая революция связана с изобретением письменности.

Вторая (середина XVI в.) вызвана изобретением книгопечатания

Третья (конец XIX в.) обусловлена изобретением электричества, благодаря которому появились телеграф, телефон, радио,

Четвертая (70-е гг. XX в.) связана с изобретением микропроцессорной технологии и появлением персонального компьютера.

Этот период характеризуют три фундаментальные инновации:

•переход от механических и электрических средств преобразования информации к электронным;

 •миниатюризация всех узлов, устройств, приборов, машин;

   •создание программно-управляемых устройств и процессов. 3)Информационная технология (ИТ) процесс, использующий совокупность средств и методов сбора, обработки и передачи данных (первичной информации) для получения информации нового качества о состоянии объекта, процесса или явления.

1 этап (до второй половины XIX в.) — "ручная" информационная технология, инструментарий которой составляли: перо, чернильница, книга. Коммуникации осуществлялись ручным способом путем переправки через почту писем, пакетов, депеш. Основная цель технологии — представление информации в нужной форме.

2 этап (с конца XIX в.) — "механическая" технология, инструментарий которой составляли: пишущая машинка, телефон, диктофон. Основная цель технологии — представление информации в нужной форме более удобными средствами.

3 этап (40 - 60-е гг.) — "электрическая" технология, инструментарий которой составляли: большие ЭВМ, электрические пишущие машинки, копировальные аппараты, портативные диктофоны.

4 этап (с начала 70-х гг.) — "электронная" технология, инструментарием которой становятся большие ЭВМ и создаваемые на их базе автоматизированные системы управления (АСУ) и информационно-поисковые системы (ИПС),

5 этап (с середины 80-х гг.) — "компьютерная" технология, основным инструментарием которой является персональный компьютер с широким спектром стандартных программных продуктов разного назначения.

Информатика – область человеческой деятельности, связанная с процессом переработки информации с помощью компьютерных технологий

Вопрос 3

Принципы фон Неймана как основа обработки информации в ЭВМ. Структурная схема ЭВМ, основные компоненты. Системы счисления.

Принципы фон Неймана

  1. Использование двоичной системы счисления в вычислительных машинах. Преимущество перед десятичной системой счисления заключается в том, что устройства можно делать достаточно простыми, арифметические и логические операции в двоичной системе счисления также выполняются достаточно просто.

  2. Программное управление ЭВМ. Работа ЭВМ контролируется программой, состоящей из набора команд. Команды выполняются последовательно друг за другом. Созданием машины с хранимой в памяти программой было положено начало тому, что мы сегодня называем программированием.

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

  4. Ячейки памяти ЭВМ имеют адреса, которые последовательно пронумерованы. В любой момент можно обратиться к любой ячейке памяти по ее адресу. Этот принцип открыл возможность использовать переменные в программировании.

  5. Возможность условного перехода в процессе выполнения программы. Не смотря на то, что команды выполняются последовательно, в программах можно реализовать возможность перехода к любому участку кода.

Самым главным следствием этих принципов можно назвать то, что теперь программа уже не была постоянной частью машины (как например, у калькулятора). Программу стало возможно легко изменить.

Основными блоками по Нейману являются устройство управления (УУ) и арифметико-логическое устройство (АЛУ) (обычно объединяемые в центральный процессор), память, внешняя память, устройства ввода и вывода.

  1. Система счисления – это способ записи чисел. Различные системы счисления делятся на две группы: позиционные и непозиционные.

В позиционных системах счисления один и тот же числовой знак (цифра) в записи числа имеет различные значения в зависимости от того места (разряда), где он расположен.

Наиболее употребляемыми в настоящее время позиционными системами являются:2,3,8,10,12,13,16,,30,60

Вопрос 6

Жизненный цикл программного обеспечения. Понятие спецификации.

Жизненный цикл программного обеспечения – это весь период его разработки и эксплуатации, начиная с момента возникновения замысла и заканчивая прекращением ее использования.

Совокупность требований:

1)Определение требования спецификаций задания.

2)Проектирование данных и Алгоритмов

3)Кодирование (написание программы)

4)Отладка и тестирование

5)Документирование

6)Сопровождение

Сопровождение – внесение изменений и поддержание программы в рабочем состоянии.

Специфика́ция — набор требований и параметров, которым удовлетворяет некоторая сущность.

  1. Постановка задачи

  2. Таблица данных

Аномалии

  1. Алгоритм (блок-схема)

  2. Программа

  3. Тесты

Билет 7

Понятие алгоритма. Свойства и способы записания.

Структурированный алгоритм.

Алгоритм — набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий.

  • Детерминированность (определённость). В каждый момент времени следующий шаг работы однозначно определяется состоянием системы. Таким образом, алгоритм выдаёт один и тот же результат (ответ) для одних и тех же исходных данных.

  • Массовость (универсальность). Алгоритм должен быть применим к разным наборам исходных данных.

  • Результативность — завершение алгоритма определёнными результатами.

  • Понятность — алгоритм должен включать только те команды, которые доступны исполнителю и входят в его систему команд.

  • Завершаемость (конечность) — при корректно заданных исходных данных алгоритм должен завершать работу и выдавать результат за конечное число шагов.  

  • Дискретность — последовательное выполнение некоторых простых шагов

Формы записи алгоритма:

словесная или вербальная (языковая, формульно-словесная);

графическая (блок-схемы)

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

Любое действие в алгоритме задается следующими структурами:- следованием;- ветвление;- цикл.

Алгоритм, построенный с использованием этих структур - структурный алгоритм.

Вопрос 11

Структура языка С++. Переменные, константы, стандартные функции.

В качестве одного из наиболее часто используемых языков в мире, и как открытый язык, C++ имеет широкий спектр компиляторов, которые работают на различных платформах. Код стандартной библиотеки C++ будет работать на многих платформах.

С++ является полностью совместимым с языком Си

В C++ можно использовать Cи библиотеки и они будут исправно работать.

С++ компилируемый язык.

C++ компилируется непосредственно в машинный код, что позволяет ему быть одним из самых быстрых в мире языков.

Структура языка

  • Алфавит языка, или его символы — это основные неделимые знаки, с по­

мощью которых пишутся все тексты на языке.

  • Лексема, или элементарная конструкция, — минимальная единица языка,

имеющая самостоятельный смысл.

  • Выражение задает правило вычисления некоторого значения.

  • Оператор задает законченное описание некоторого действия.

Константы

  • Целые

  • Константы с плавающей точкой состоит из целой части,десятичной точки,дробной части, буквы e или E, показателя степени.

  • Символьная константа состоит из одного символа заключенного в апострофы.

  • Строковая константа - последовательность символов, заключенных в кавычки. Строковая константа имеет тип char[]. Это массив символов, которые заключены в кавычки к которым компилятор добавляет '\0'.

Переменная — это именованная область памяти, в которой хранятся данные определенного типа. У переменной есть имя и значение. Имя служит для обращения к области памяти, в которой хранится значение. Во время выполнения программы значение переменной можно изменять.

Локальные переменные – действуют в пределах одной функции (память выделяется только при вызове функции)

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

Локальные переменные предпочтительнее глобальных. Если глобальная перемен­

ная все же необходима, лучше объявить ее статической, что ограничит область ее

действия одним исходным файлом.

int a; // объявление переменной a целого типа.

float b; // объявление переменной b типа данных с плавающей запятой.

char d = 's'; // инициализация переменной типа char

bool k = true; // инициализация логической переменной k.

Стандартные функции:

a==, a!=b, a&&b, a||b

sinx=sin(x),cos

lnx=log(x)

lgx=log10(x)

√x=sqrt(x)

=pow(x,a) x|=fabs(x)-вещ

Вопрос 16

Операторы передачи управления break, continue, goto.

в C++ есть четыре оператора, изменяющих естественный порядок выполнения

вычислений:

• оператор безусловного перехода goto;

• оператор выхода из цикла break;

• оператор перехода к следующей итерации цикла continue;

• оператор возврата из функции return.

Оператор goto

Оператор безусловного перехода goto имеет формат: goto метка:

В теле той же функции должна присутствовать ровно одна конструкция вида:

метка: оператор:

Оператор goto передает управление на помеченный оператор. Метка — это обычный идентификатор, областью видимости которого является функция, в теле которой он задан.

Не следует передавать управление внутрь операторов if, switch и циклов. Нельзя переходить внутрь блоков, содержащих инициализацию переменных, на операторы, расположенные после нее, поскольку в этом случае инициализация не будет выполнена:

int к: ...

goto metka; ...

{1nt а = 3. b = 4;

к = а + b;

metka: int m = к + 1; ...

}

Оператор break

Оператор break используется внутри операторов цикла или switch для обеспечения перехода в точку программы, находящуюся непосредственно за оператором, внутри которого находится break.

Оператор continue

Оператор перехода к следующей итерации цикла continue пропускает все операторы, оставшиеся до конца тела цикла, и передает управление на начало следующей итерации.

Оператор return

Оператор возврата из функции return завершает выполнение функции и передает управление в точку ее вызова. Вид оператора:

return [ выражение ];

Выражение должно иметь скалярный тип. Если тип возвращаемого функцией значения описан как void, выражение должно отсутствовать.

Вопрос 20

Массивы. Описание. Ввод/вывод. Обработка

Массивы

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

Описание массива в программе отличается от описания простой переменной наличием после имени квадратных скобок, в которых

задается количество элементов массива (размерность):

f!oat а [10]; // описание массива из 10 вещественных чисел

Элементы массива нумеруются с нуля. При описании массива используются те же модификаторы (класс памяти, const и инициализатор), что и для простых переменных.

Многомерные массивы задаются указанием каждого измерения в квадратных

скобках, например, оператор int matr [6][8]: задает описание двумерного массива из 6 строк и 8 столбцов. Количество измерений в массиве может быть практически бесконечным (т.е. достаточным для решения любых практических задач).

В памяти такой массив располагается в последовательных ячейках построчно. Для доступа к элементу многомерного массива указываются все его индексы, например, matr[i][j]

Пример ввода массива

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

cin>>a[i];}

Пример вывода массива

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

cout<<a[i];}

Обработка одномерного массива

Рассмотрим несколько способов решения этой задачи. Элементы, которые лежат выше главной диагонали – это элементы A[i][j], для которых i<j, а для элементов ниже главной диагонали i>j. Таким образом, мы можем сравнивать значения i и j и по ним определять значение A[i][j]. Получаем следующий алгоритм:

    for(i=0;i<n;++i)        for(j=0;j<n;++j)        {           if (i<j)              A[i][j]=0;           else if(i>j)              A[i][j]=2;           else              A[i][j]=1;        }

    for(i=0;i<n;++i)     {   // Заполняем строку с номером i        for(j=0;j<i;++j)           A[i][j]=2;   // Сначала пишем 2 ниже диагонали        A[i][j]=1;      // После завершения предыдущего цикла i==j, пишем 1        for(++j;j<n;++j) // Цикл начинаем с увеличения j на 1           A[i][j]=0;   // Записываем 0 выше диагонали     }

Вопрос 21

Цикл, управляемый параметром. Кодирование в С++. Примеры

Цикл с параметром (for)

Цикл с параметром имеет следующий формат:

for (инициализация: выражение: модификации) оператор:

Инициализация используется для объявления и присвоения начальных значений величинам, используемым в цикле. В этой части можно записать несколько операторов, разделенных запятой.

Областью действия переменных, объявленных в части инициализации цикла, является цикл!. Инициализация выполняется один раз в начале исполнения цикла. Выражение определяет условие выполнения цикла: если его результат, приведенный к типу bool, равен true, цикл выполняется. Цикл с параметром реализован как цикл с предусловием.

Модификации выполняются после каждой итерации цикла и служат обычно для

изменения параметров цикла. В части модификаций можно записать несколько

операторов через запятую. Простой или составной оператор представляет собой

тело цикла. Любая из частей оператора for может быть опущена.

Пара́метр в программировании — принятый функцией аргумент. Термин «аргумент» подразумевает, что конкретно и какой конкретной функции было передано, а параметр — в каком качестве функция применила это принятое. Т.е. вызывающий код передает аргумент в параметр, который определен в члене спецификации функции.

По способу применения различают:

  • фактический параметр — аргумент, передаваемый в функцию при ее вызове;

  • формальный параметр — аргумент, указываемый при объявлении или определении функции

Вопрос 2

Поколения ЭВМ, критерии классификации, основные характеристики, современный этап развития.

  1. Поколения ЭВМ

  1. ЭВМ первого поколения (конец 40-х и 50-е гг.). - использовали Электронно-вакуумные лампы, обладали малым быстродействием(8-20 тыс. оп./с) и объемом памяти, имели неразвитые операционные системы, программирование выполнялось на языках программирования низкого уровня (язык "Ассемблер").

  2. ЭВМ второго поколения (конец 50-х, 60-е и начало 70-х гг.). - использовали полупроводники, транзисторы, диоды, быстродействие 0,1-1 млн. оп./с, языки программирования высокого уровня и принцип библиотечных программ .

  3. ЭВМ третьего поколения (70-е, начало 80-х гг.)  - использовали интегральные схемы, обладали большим быстродействием(1 млн. оп./с) и объемами основной и внешней памяти, использовали языки высокого уровня (Basic, Pascal). Развитая операционная система обеспечивала работу в т.н. “мультипрограммном” режиме.

  4. ЭВМ четвертого поколения (середина 80-х гг. по настоящее время). - используют большие и сверхбольшие интегральные схемы (БИС и СБИС), виртуальную память, многопроцессорный с параллельным выполнением операций принцип построения, развитые средства диалога. Быстродействие более 1 млн. оп./с.

ЭВМ могут различаться также по принципу построения и действия

  1. Аналоговая ЭВМ - это компьютеры с заведомо предопределенным набором вычислительных возможностей, которые оперируют данными, представленными в аналоговом виде. Аналоговые вычислительные машины практически всегда жестко специализированы.

  2. Цифровая ЭВМ (дискретная) – Обработка информации в виде последовательности знаков

(цифрового кода) её основе работает Цифровая вычислительная техника (ЭЦВМ)

  1. Комбинированная (аналого-цифровая ) ЭВМ - ЭВМ, сочетающая аналоговую и цифровую форму обработки данных.

Основные характеристики ЭВМ

Быстродействие ЭВМ  характеризуется количеством элементарных операций, выполняемых центральным процессором в секунду. 

Емкость, или объем, памяти определяется максимальным количеством информации, которое можно разместить в памяти ЭВМ

Точность вычислений зависит от количества разрядов, используемых для представления одного числа.(32- или 64-разр проц сейчас)

Система команд - это перечень команд, которые способен выполнить процессор ЭВМ.

Современный этап развития

Программа разработки была принята в Японии в 1982 г. Предполагалось, что к 1991 г. будут созданы принципиально новые компьютеры, ориентированные на решение задач искусственного интеллекта. С помощью языка Пролог и новшеств в конструкции компьютеров планировалось вплотную подойти к решению одной из основных задач этой ветви компьютерной науки - задачи хранения и обработки знаний. Коротко говоря, для компьютеров "пятого поколения" не пришлось бы писать программ, а достаточно было бы объяснить на "почти естественном" языке, что от них требуется.

Вопрос 4

Современная технология (методология) программирования. Основные этапы разработки программ. Критерии эффективности программ.

Методология программирования – совокупность методов, применимых в жизненном цикле программного обеспечения и объединенных общим философским подходом.

Программа — завершенный продукт, пригодный для запуска своим автором на системе, на которой он был разработан.

Модульное программирование — это такой способ программирования, при котором вся программа разбивается на группу компонентов, называемых модулями, причем каждый из них имеет свой контролируемый размер, четкое назначение и детально проработанный интерфейс с внешней средой.

Структурное программирование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков

Структурное программирование (СП) возникло как вариант решения проблемы уменьшения СЛОЖНОСТИ разработки программного обеспечения.

Для оценки качества программ существуют следующие критерии:

1)Работоспособность (возможность выполнения программы на имеющемся ЭВМ)

2)Правильность или корректность (строгое соответствие результата, полученного при выполнении программы с требованиями постановки задачи для любых допустимых исходных данных)

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

6)Читабельность (ясность структуры и текста программы, за счет наличия комментариев и рельефной формы записи)

Простота, документированность

Методы и концепции.

Технология подготовки и решения задачи на ЭВМ включает в себя четыре основных этапа:

     ознакомление с поставленной

     составление плана решения , разработка алгоритма;

     осуществление решения – кодирование

     проверка правильности решения задачи – отладка

Вопрос 5

Структурное программирование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков

Структурное программирование (СП) возникло как вариант решения проблемы уменьшения СЛОЖНОСТИ разработки программного обеспечения.

Цель структурного программирования - повышение надежности программ, обеспечение сопровождения и модификации, облегчение и ускорение разработки.

Основные принципы

Разбиение процесса создания программ на этапы. Соблюдение последовательности и автономности.

Тщательная разработка спецификаций

Использование для проектирования алгоритма специальных языков (яз. блок-схем или псевдокодов)

Использование метода нисходящего проектирования

Исп. Принципа структурного программирования, подразумевающего проектирование алгоритма на основе базового набора конструкций (следование, ветвление , цикл)

Разработка программы ведётся пошагово, методом «сверху вниз».

  • следование — однократное выполнение операций в том порядке, в котором они записаны в тексте программы;

  • ветвление — однократное выполнение одной из двух или более операций, в зависимости от выполнения некоторого заданного условия;

  • цикл — многократное исполнение одной и той же операции до тех пор, пока выполняется некоторое заданное условие (условие продолжения цикла).

Метод нисходящего проектирования программ основан на построении схемы иерархии, которая изображает уровни. При этом методе проектирования исходная задача делится на ряд подзадач, которые подчиняются главной задаче. Такой метод позволяет упростить решение сложных задач. 

Вопрос 8

Базовые управляющие структуры алгоритма (следование и ветвление) на языке блок-схем. Кодирование в С++.

Алгоритмические структуры образуют линейную последо­вательность операций, которые выполняются по очереди в порядке запи­си, — следование. Программную реализацию наз. линейной программой.

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

 Под термином «кодирование» часто понимают переход от одной формы представления информации к другой, более удобной для хранения, передачи или обработки.

Вопрос 9 Базовые управляющие структуры алгоритма (цикл) на языке блок-схем. Кодирование в С++.

Цикл представляет собой многократно повторяющуюся последовательность шагов алгоритма.

Под термином «кодирование» часто понимают переход от одной формы представления информации к другой, более удобной для хранения, передачи или обработки.


 

Вопрос 10

Общая характеристика языка С++. Структура языка. Алфавит.

Си - это язык программирования высокого уровня, который более популярен, чем Паскаль и Ассемблер. Си, позволяет писать программы под Windows. Ведь первые Операционные системы были написаны именно на языке Си.

Алфавит C++ включает:

• прописные и строчные латинские буквы и знак подчеркивания

• арабские цифры от 0 до 9;

• специальные знаки:

" { } , i []()+ - / % * . \ ? < = >!&#-;' '

• пробельные символы: пробел, символы табуляции, символы перехода на новую строку.

Из символов алфавита формируются лексемы языка:

• идентификаторы;

• ключевые (зарезервированные) слова;

• знаки операций;

• константы;

• разделители (скобки, точка, запятая, пробельные символы).

Границы лексем определяются другими лексемами, такими, как разделители или

знаки операций.

Вопрос 12 Основные операции в С++.

Арифметические операции

+ - * / % ++ --

a%b - остаток от деления a на b (a и b - целые)

++ - увеличение на 1

-- - уменьшение на 1

Манипуляция разрядами

~ - поразрядное отрицание

& - поразрядное "И"

| - поразрядное "ИЛИ"

^ - поразрядное "ИСКЛЮЧАЮЩЕЕ ИЛИ"

<< - сдвиг влево

>> - сдвиг вправо

Операции присваивания

=

+= ( a+=b эквивалентно a=a+b )

-= ( a-=b эквивалентно a=a-b )

*= ( a*=b эквивалентно a=a*b )

/= ( a/=b эквивалентно a=a/b )

%= ( a%=b эквивалентно a=a%b )

&= ( a&=b эквивалентно a=a&b )

|= ( a|=b эквивалентно a=a|b )

^= ( a^=b эквивалентно a=a^b )

<<= ( a<<=b эквивалентно a=a<< b )

>>= ( a>>=b эквивалентно a=a>>b )

Вопрос 13

Арифметические выражения в С++.

Арифметические  выражения,  стоящие  в  правой  части  оператора  присваивания,  могут  содержать

•  целые и вещественные числа (в вещественных числах целая и дробная часть разделяются  точкой, а не запятой, как это принято в математике)  •  знаки арифметических действий    + —  сложение, вычитание    * /  умножение, деление     %    остаток от деления  •  вызовы стандартных функций    abs(i)   модуль целого числа i    fabs(x)  модель вещественного числа x    sqrt(x)  квадратный корень из вещественного числа x    pow(x,y)  вычисляет x в степени y  •  круглые скобки для изменения порядка действий

Вопрос 14

Логические выражения в С++

Логические операции (&& и ||). Каждый операнд оценивается с точки зрения его эквивалентности нулю

(операнд, равный нулю, рассматривается как false, не равный нулю — как true).

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

&& - логическое "И"

|| - логическое "ИЛИ"

! - логическое "НЕ"

Операции отношения

< <= > >= == !=

Вопрос 15

Структура типов данных. Описание простых типов данных. Оператор списания типов typedef.

Основные типы данных в C++

int — целочисленный тип данных.

float — тип данных с плавающей запятой.

double — тип данных с плавающей запятой двойной точности.

char — символьный тип данных.

bool — логический тип данных.

Модификаторы  signed и unsigned - показывает если ли у переменной знак или нет. Если нет, то она не может быть отрицательной.  long - изменяет структуру данных переменной таким образом что, можно записать в нее бОльшее значение.   short - применяется только к целому типу, с данным модификатором переменная типа int занимает 2 байта, вместо 4х.   const - превращает переменную в константу, это значит что мы ее Инициализируем и больше не можем изменять(константа должна быть обязательно инициализирована!).

Переименование типов (typedef)

Для того чтобы сделать программу более ясной, можно задать типу новое имя с

помощью ключевого слова typedef:

typedef тип новое_имя [ размерность ]:

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

ность может отсутствовать. Примеры:

typedef unsigned int UINT:

typedef char MsgClOO];

typedef struct{

char f1o[30];

int date, code:

double salary:} Worker:

Вопрос 17

Оператор присваивания. Сложное присваивание.

Операции присваивания (=, +=, -=, *= и т. д.) могут использоваться в программе как законченные операторы. Формат операции простого присваивания (*=):

операнд^! = операнд_2

Первый операнд должен быть L-значением, второй — выражением. Сначала вычисляется выражение, стоящее в правой части операции, а потом его результат записывается в область памяти, указанную в левой части То, что ранее хранилось в этой области памяти, естественно, теряется.

При присваивании производится преобразование типа выражения к типу L-значения, что

может привести к потере информации.

В сложных операциях присваивания ( +=, *«=, /== и т п.) при вычислении выражения, стоящего в правой части, используется и L-значение из левой части. Например, при сложении с присваиванием ко второму операнду прибавляется первый, и результат записывается в первый операнд, то есть выражение а += Ь является более компактной записью выражения а « а + Ь.

Вопрос 18

Способ организации ввода/вывода в С++

В языке C++ нет встроенных средств ввода/вывода — он осуществляется с помощью функций, типов и объектов, содержащихся в стандартных библиотеках. Используется два способа:

функции, унаследованные из языка С, и объекты C++.

Основные функции ввода/вывода в стиле С:

int scanf (const char* format. ... ) // ввод

int printf(const char* format. ... ) // вывод

1nt main(){

int 1:

printf("Введите целое число\п"):

scafifC'^d". &1):

printf("Вы ввели число ^d. спасибо!", i):

Вопрос 19

Итерационные циклы. Сравнительная характеристика. Кодирование в С++.

Любой цикл состоит из тела цикла, то есть тех операторов, которые выполняются несколько раз, начальных установок, модификации параметра цикла и проверки условия продолжения выполнения цикла. Один проход цикла называется итерацией. Проверка условия выполняется на каждой итерации либо до тела цикла (тогда говорят о цикле с предусловием), либо после тела цикла (цикл с постусловием). Разница между ними состоит в том, что тело цикла с постусловием всегда выполняется хотя бы один раз, после чего проверяется, надо ли его выполнять еще раз. Проверка необходимости выполнения цикла с предусловием делается до тела цикла, поэтому возможно, что он не выполнится ни разу.

Переменные, изменяющиеся в теле цикла и используемые при проверке условия продолжения, называются параметрами цикла. Целочисленные параметры цикла, изменяющиеся с постоянным шагом на каждой итерации, называются счетчиками цикла.

В C++ есть три разных оператора цикла — while, do while и for.

Цикл с предусловием (while) имеет вид:

while ( выражение ) оператор

Выражение определяет условие повторения тела цикла, представленного простым или составным оператором. Выполнение оператора начинается с вычисления выражения. Если оно истинно (не равно false), выполняется оператор цикла. Если при первой проверке выражение равно false, цикл не выполнится ниразу. Тип выражения должен быть арифметическим или приводимым к нему.

Выражение вычисляется перед каждой итерацией цикла.

Пример (программа находит все делители целого положительного числа):

#inclucle <iostream.h>

int main(){

int num:

cout « "ХпВведите число : ": cin » num:

int half = num / 2: // половина числа

int div = 2: // кандидат на делитель

while (div <= half){

if (!(num % div))cout « div «"\n":

div++:

}

return 0:

Распространенный прием программирования — организация бесконечного цикла с заголовком while (true) либо while (1) и принудительным выходом из тела цикла по выполнению какого-либо условия.

Цикл с постусловием (do while)

Цикл с постусловием реализует структурную схему,

и имеет вид:

do оператор while выражение:

Сначала выполняется простой или составной оператор, составляющий тело цикла, а затем вычисляется выражение. Если оно истинно (не равно f а! se), тело цикла выполняется еще раз. Цикл завершается, когда выражение станет равным false или в теле цикла будет выполнен какой-либо оператор передачи управления. Тип выражения должен быть арифметическим или приводимым к нему.

Цикл с параметром (for)

Цикл с параметром имеет следующий формат:

for (инициализация: выражение: модификации) оператор:

Инициализация используется для объявления и присвоения начальных значений величинам, используемым в цикле. В этой части можно записать несколько операторов, разделенных запятой.

Областью действия переменных, объявленных в части инициализации цикла, является цикл!. Инициализация выполняется один раз в начале исполнения цикла. Выражение определяет условие выполнения цикла: если его результат, приведенный к типу bool, равен true, цикл выполняется. Цикл с параметром реализован как цикл с предусловием.

Модификации выполняются после каждой итерации цикла и служат обычно для

изменения параметров цикла. В части модификаций можно записать несколько

операторов через запятую. Простой или составной оператор представляет собой

тело цикла. Любая из частей оператора for может быть опущена.

  • Оператор do while обычно используют, когда цикл требуется обязательно выполнить хотя бы раз (например, если в цикле производится ввод данных).

  • Оператором while удобнее пользоваться в случаях, когда число итераций заранее не известно, очевидных параметров цикла нет или модификацию параметров удобнее записывать не в конце тела цикла.

  • Оператор for предпочтительнее в большинстве остальных случаев (однознач­

но — для организации циклов со счетчиками).