
- •Вопрос 5 Скалярные типы и выражения. Приведите пример простой программы.
- •Вопрос 6 Типы операций: операции присвоения и отношения. Примеры. Операция присваивания.
- •Вопрос7 Типы операций: логические, битовые и условные операции.
- •10) Условные операторы. Варианты условных операторов. Пример: Даны целые числа X, y. Вычислить max(X, y).
- •11) Условные конструкции. Оператор switch. Приведите примеры
- •12. Условные и циклические конструкции. Виды конструкций, что общего у них.
- •13.Циклические конструкции. Виды конструкций.
- •14Циклические констрккции.Цикл while
- •Вопрос15 Циклические конструкции. Цикл do...While. Приведите примеры.
- •Вопрос16 Циклические конструкции. Цикл for. Приведите примеры. Циклические конструкции. Цикл for
- •Вопрос17 Цикл for. Использование операции "запятая". Приведите примеры.
- •Вопрос18 Укажите особенности операторов go to, break, continue, return.
- •20Этапы решения задач на компьютере
- •21 Назначение препроцессора .Примеры использования директив препроцессора
- •1. Замена идентификаторов заранее подготовленными последовательностями символов;
- •2. Включение в программу текстов из указанных файлов;
- •3. Исключение из программы отдельных частей ее текста, условная компиляция;
- •4. Макроподстановка, то есть замена обозначения параметризованным текстом, формируемым препроцессором с учетом конкретных аргументов.
- •23Основные возможности функции scanf(). Приведите примеры
- •25Арифметические операции. Приведите примеры.
- •27 Указатели и адреса
- •28 Общие сведения о массивах
- •29Многомерные массивы. Работа с массивами с помощью указателей
- •30Общие сведения о функциях. Определение функции
- •31 Класс памяти (auto)
- •32Внешний класс памяти (extern)
- •33 Внешние глобальные объекты (extern)
- •33Внешние статические объекты (static).
- •34 Строки
- •35 Функция для работы со строками
Вопрос18 Укажите особенности операторов go to, break, continue, return.
Оператор перехода goto предназначен для безусловной передачи управления в заданную точку программы. Его выполнение заключается в передаче управления оператору, помеченному заданной меткой. Общий вид оператора следующий:
goto <метка>;
. . . .
<метка>: <оператор>
Оператор перехода goto предназначен для безусловной передачи управления в заданную точку программы. В качестве метки используется идентификатор. Метка отделяется от помеченного оператора двоеточием. Передача управления разрешена на любой помеченный оператор в теле функции. Однако существует одно важное ограничение: запрещено "перескакивать" через описания, содержащие инициализацию объектов.
Принятые в настоящее время правила составления программ рекомендуют либо вовсе отказаться от оператора goto, либо свести его применение к минимуму и строго придерживаться следующих рекомендаций:
не входить внутрь блока извне;
не входить внутрь условного оператора, то есть не передавать управление операторам, размещенным после служебных слов if или else;
не входить извне внутрь переключателя switch;
не передавать управление внутрь цикла.
Следование перечисленным рекомендациям позволяет исключить возможные нежелательные последствия бессистемного использования оператора безусловного перехода. Полностью отказываться от его использования вряд ли стоит. Есть случаи, когда этот оператор обеспечивает наиболее простые и понятные решения
Оператор break
Оператор break служит для принудительного выхода из цикла или переключателя. Например, в случае цикла не проверяются и не учитываются условия дальнейшего продолжения итераций. Оператор break прекращает выполнение оператора цикла или переключателя и осуществляет передачу управления (переход) к следующему за циклом или переключателем оператору. При этом в отличие от перехода с помощью goto оператор, к которому выполняется передача управления, не должен быть помечен. Оператор break нельзя использовать нигде, кроме циклов и переключателей.
Пример. Составить программу, печатающую название заданной восьмеричной цифры.
#include <iostream.h>
void main()
{
int ic;
cout << "\n Введите восьмеричную цифру:" ;
cin >> ic;
cout << "\n" << ic;
switch (ic)
{
case 0: cout << " - нуль"; break;
case 1: cout << " - один"; break;
case 2: cout << " - два"; break;
case 3: cout << " - три"; break;
case 4: cout << " - четыре"; break;
case 5: cout << " - пять"; break;
case 6: cout << " - шесть"; break;
case 7: cout << " - семь "; break;
default: cout << " - это не восьмеричная цифра!\n";
}
}
Программа напечатает название только одной введенной цифры и прекратит работу. Если в ней удалить операторы break, то в переключателе будут последовательно выполнены все операторы, начиная с помеченного нужным (введенным) значением.
. Оператор continue
Оператор continue употребляется только в операторах цикла. С его помощью завершается текущий шаг выполнения тела цикла и осуществляется переход на заголовок цикла, то есть проверяется условие для дальнейшего продолжения цикла. Оператор continue действует только самый внутренний цикл, частью которого он является. .
ПримерПодсчитать среднее значение только положительных элементов одномерного массива.
#include <iostream.h>
void main()
{
int a[20],n,k,i;
float s;
cout << "\nЗадайте количество чисел: ";
cin >> n;
cout << '\n';
for (i=0;i<n;i++)
{
cout << i+1 <<"-е число: ";
cin >> a[i];
cout << '\n';
}
for (s=0,k=0,i=0;i<n;i++)
{ if (a[i]<=0) continue;
k++;
s+=a[i];
}
if (k>0) { s/=k;
cout << "\nСреднее значение: "<< s ; }
else
cout << "\nВсе члены массива не положительны\n".}
Оператор return
Оператор return завершает выполнение данной функции и передает управление вызывающей функции. Оператор return, появившийся в главной функции main, вызывает завершение выполнения всей программы.
Общий вид оператора return следующий:
return (<выражение>);
или
return <выражение>;
Если выражение "не пусто" (то есть оно присутствует), то вычисляется его значение, которое и становится значением вызова функции. Выражение, если оно присутствует, может быть только скалярным.
Пример. Составить программу возведения числа в куб с использованием функции.
#include <iostream.h>
void main()
{
float cube (float); //Прототип функции возведения в куб.
float n;
cout << "\nЗадайте число: ";
cin >> n;
cout << '\n';
cout << "\nЕго куб: "<< cube (n) << '\n';
}
float cube (float z)
//Функция возведения числа в куб.
{
return z*z*z;
}
Выражение в операторе return не может присутствовать в том случае, если возвращаемое функцией значение имеет тип void, чаще всего означающий, что функция не возвращает никакого значения. Достижение "конца" функции (правой закрывающей фигурной скобки) эквивалентно выполнению оператора return без возвращаемого значения (т.е. оператор return в конце функции может быть опущен). Как правило, он опускается, когда функция имеет тип void.
Если же оператор return не содержит никакого выражения, то значение вызова функции не определено.
билет 19 Структура программы на Си.
Для рассмотрения сруктуры программы рассмотрим простую программу на языке C++.
//Простая программа, написанная на языке C++.
#include <iostream.h>
main ()
{
int num=1;
cout << "Я - простая";
cout << " вычислительная машина.\n";
cout<<"Мое любимое число "<<num<<", потому что оно самое
первое.\n";
}
Результат выполнения программы:
Я - простая вычислительная машина.
Мое любимое число 1, потому что оно самое первое.
Комментарии к программе.
//Простая программа, написанная на языке C++. Это комментарий. Использование комментариев облегчает процесс понимания вашей программы любым программистом Для записи комментария могут использоваться следующие символы:
два символа / (//) - все символы расположенные после этой лексемы, игнорируются компилятором. Однако таким образом можно задавать только "однострочный" комментарий. Если требуется расположить комментарий на нескольких строках, то перед началом каждой части комментария нужно располагать этот символ:
//Простая программа,
//написанная на языке C++.
символы /* и */ - отмечают, соответственно, начало комментария (/*) и его конец (*/). Компилятор "игнорирует" все символы, находящиеся между указанными конструкциями:
/*Простая программа, написанная на языке C++.*/
или
/*Простая программа,
написанная на языке C++.*/
#include <iostream.h> - директива препроцессора. Подключение к нашей программе файла с именем iostream.h позволяет воспользоваться потоками ввода (cin) и вывода (cout),.
Символ # указывает, что она должна быть обработана препроцессором языка C++. Препроцессор осуществляет некоторую предварительную обработку текста программы перед началом компиляции.
main() - имя функции. Любая программа, написанная на языке C++, состоит из одной или более функций, являющихся основными модулями, из которых она собирается то, что main - имя функции (англ. main - главный). Программа, написанная на языке C++, всегда начинает выполняться с функции, названной main(), поэтому мы имеем возможность выбирать имена для всех используемых нами функций кроме той, с которой начинается выполнение программы.
В круглых скобках в общем случае содержится информация, передаваемая этой функции. В нашем примере передача информации отсутствует, и, следовательно, скобки пусты.
{ и } - фигурные скобки отмечают начало и конец тела функции. Фигурные скобки применяются также и для того, чтобы объединить несколько операторов программы в составной оператор или блок (аналогичны операторным скобкам Begin и End языка Pascal).
int num=1; - оператор описания, совмещенный с оператором присваивания. Сразу же при описании переменной мы присваиваем ей значение 1. Таким образом здесь не только выделяется память под размещение значения переменной, но и происходит инициализация выделенного участка памяти.
Точка с запятой в конце программной строки указывает на то, что в ней содержится оператор языка C++, причем этот символ является здесь частью оператора, а не разделителем операторов, как в языке Pascal.
Слово int является ключевым словом, определяющим один из простейших типов данных языка C++. Напомним, что ключевыми словами называются специальные зарезервированные слова, используемые для построения предложений языка.
. В языке C++ все переменные должны быть описаны, хотя описание переменной может находиться где угодно, но до первого использования этой переменной!
cout<<"Я - простая"; - помещение в поток вывода фразы, заключенной в кавычки. Стандартный поток вывода связан с экраном, поэтому символы, заключенные в кавычки, появятся на экране дисплея.
cout<<" вычислительная машина.\n"; - добавляет слова "вычислительная машина" в конец последней выведенной на экран фразы (в той же строке). Символы \n не появятся на экране. Эти символы служат директивой начать новую строку на устройстве вывода. Комбинация символов \n на самом деле представляет собой один символ, называемый новая строка. Его смысл кратко формулируется так: начать вывод новой строки с самой левой колонки следующей строки. Для этого символа не существует соответствующей символьной клавиши клавиатуры (ему соответствует клавиша Enter).Символ новая строка служит одним из примеров того, что называется ESC-последовательностью.
Вместо символов \n можно использовать команду endl:
cout<<" вычислительная машина."<<endl;
cout<<"Мое любимое число "<<num<<", потому что оно самое первое.\n"; - вывод на экран фраз, заключенных в кавычки, и значения переменной num.
Файл, содержащий программу, может иметь любое имя, правда с тем ограничением, что оно должно удовлетворять ограничениям на имя в данной операционной системе и иметь расширение cpp. Например, prog.cpp или MMM.CPP.