Borland С++ поддерживает три аргумента main(). Первые два — это традиционные argc и argv. Это единственные аргументы функции main(), определяемые стандартом ANSI С. Они позволяют передавать аргументы командной строки в программу. Аргументы командной строки — это информация, следующая за именем программы в командной строке операционной системы. Например, когда программа компилируется с помощью строчного компилятора Borland, набирается, как правило, bcc имя_ программы
где имя_программы — это программа, которую необходимо откомпилировать. Имя программы передается компилятору в качестве аргумента.
Параметр argc содержит число аргументов командной строки и является целым числом. Он всегда равен, по крайней мере, 1, поскольку имя программы квалифицируется как первый аргумент. Параметр argv — это указатель на массив символьных указателей. Каждый элемент данного массива указывает на аргумент командной строки. Все аргументы командной строки — это строки.
Все числа конвертируются программой во внутренний формат. Следующая программа выводит «Hello», а затем имя пользователя, если его набрать прямо за именем программы:
06. Структура программы
#include
int main(int argc, char *argv[])
if(argc!=2)
printf («You forgot to type your namen»);
return 1;
>
printf(«Hello %s», argv[1]);
return 0;
>
Если назвать данную программу name, а имя пользователя Сергей, то для запуска программы следует набрать:
name Сергей.
В результате работы программы появится:
«Hello Сергей».
Аргументы командной строки должны отделяться пробелами или табуляциями. Запятые, точки с запятыми и им подобные символы не рассматриваются как разделители. Например:
состоит из трех строк, в то время как
это одна строка — запятые не являются разделителями.
Если необходимо передать строку, содержащую пробелы или табуляции в виде одного аргумента, следует ее заключить в двойные кавычки. Например, это один аргумент:
Важно правильно объявить argv. Наиболее типичным методом является:
Пустые скобки указывают на то, что массив не имеет фиксированной длины. Можно получить доступ к отдельным элементам с помощью индексации argv. Например, argv[0] указывает на первую строку, всегда содержащую имя программы. argv[1] указывает на следующую строку и так далее.
Ниже приведен небольшой пример по использованию аргументов командной строки. Он отсчитывает в обратном порядке от значения, указанного в командной строке, и при достижении нуля подает сигнал. Обратим внимание, что первый аргумент содержит число, преобразованное в целое число с использованием стандартной функции atoi(). Если в качестве второго аргумента присутствует строка «display», то на экране будет отображаться сам счетчик.
#include
#include
# include
int main(int argc,, char *argv[])
int disp, count;
if(argc <2)
printf(«You must enter the length of the countn»);
8 Структура программы С++, части программы С++, функция main(), как составить программу С++ запуск С
printf («on the command line. Try again.n»);
return 1;
>
if (argc==3 !strcmp(argv[2],»display»)) disp = 1;
else disp = 0;
for(count=atoi(argv[1]); count; -count)
if (disp) printf(«%d «, count);
printf(«%c», ‘a’); /* на большинстве компьютеров это звонок */
return 0;
>
Обратим внимание, что если не указаны аргументы, появляется сообщение об ошибке. Это наиболее типично для программ, использующих аргументы командной строки для выдачи инструкций, если была попытка запустить программу без правильной информации.
Для доступа к отдельным символам командной строки следует добавить второй индекс к argv. Например, следующая программа выводит все аргументы, с которыми она вызывалась, по одному символу за раз:
Надо помнить, что первый индекс предназначен для доступа к строке, а второй — для доступа к символу строки.
Обычно argc и argv используются для получения исходных команд. Теоретически можно иметь до 32767 аргументов, но большинство операционных систем не позволяют даже близко подойти к этому. Обычно данные аргументы используются для указания имени файла или опций. Использование аргументов командной строки придает программе профессиональный вид и допускает использование программы в командных файлах.
Если подсоединить файл WILDARGS.OBJ, поставляемый с Borland С++, то можно будет использовать шаблоны в аргументах типа *.EXE. (Borland С++ автоматически обрабатывает шаблоны и соответствующим образом увеличивает argc.) Например, если подсоединить к следующей программе WILDARGS.OBJ, она выдаст, сколько файлов соответствует имени указанного в командной строке файла:
/* Скомпонуйте данную программу с WILDARGS.OBJ */
#include
int main(int argc, char *argv[])
register int i;
printf(«%d files match specified namen», argc-1);
printf(«They are: «);
for(i=1; i printf («%s «, argv[i]);
return 0;
>
Если назвать данную программу WA, затем запустить ее как указано ниже, получим число файлов, имеющих расширение ЕХE, и список имен этих файлов:
Помимо argc и argv Borland С++ также предоставляет третий аргумент командной строки -env. Параметр env позволяет программе получить доступ к информации о среде операционной системы. Параметр env должен следовать за argc и argv и объявляется следующим образом:
Как можно видеть, env объявляется так же, как и argv. Так же, как и argv, это указатель на массив строк. Каждая строка — это строка среды, определенная операционной системой. Параметр env не имеет аналога параметра argc, который сообщал бы, сколько имеется строк среды. Вместо этого последняя строка среды нулевая. Следующая программа выводит все строки среды, определенные на текущий момент в операционной системе:
/* данная программа выводит все строки окружения */
#include
int main(int argc, char *argv[], char *env[])
int t;
for(t=0; env[t]/ t++)
printf(«%sn», env[t]);
return 0;
>
Обратим внимание, что хотя argc и argv не используются программой, они должны присутствовать в списке параметров. С не знает имена параметров. Вместо этого их использование определяется по порядку объявления параметров. Фактически можно обозвать параметр как угодно. Поскольку argc, argv и env — это традиционные имена, то лучше их использовать и далее, чтобы любой человек, читающий программу, мог мгновенно понять, что это аргументы функции main().
Для программ типичной задачей является поиск значения, определенного в строке среды. Например, содержимое строки PATH позволяет программам использовать пути поиска. Следующая программа демонстрирует, как найти строки, объявляющие стандартные пути поиска. Она использует стандартную библиотечную функцию strstr(), имеющую следующий прототип:
char *strstr(const char *str1, const char *str2);
Функция strstr() ищет строку, на которую указывает str1 в строке, на которую указывает str2. Если такая строка найдена, то возвращается указатель на первое положение. Если не найдено соответствий, то функция возвращает NULL.
/* программа ищет среди строк окружения строку, содержащую PATH */
#include
#include
int main (int argc, char *argv[], char *env[])
int t;
for(t=0; env[t]; t++)
if(strstr(env[t], «PATH»))
printf(«%sn», env[t]);
>
return 0;
>
Источник: www.c-cpp.ru
Презентация на тему к уроку Структура программы на С++
Слайды презентации
Слайд 1 Visual Studio 2010 . Структура программы (С++). ЗАНЯТИЕ ПО
ДИСЦИПЛИНЕ «Основы алгоритмизации и программирования», 2 КУРС, СПЕЦИАЛЬНОСТЬ 09.02.04
ИНФОРМАЦИОННЫЕ СИСТЕМЫ
Государственное автономное профессиональное образовательное учреждение «Технологический колледж» № 24 г. Москвы
Слайд 2 План занятия
1. Теоретические аспекты программирования на языке С++
2.
Синтаксис и программные конструкции Visual C++.
3. Типы данных
С++
4. Структура программы
Слайд 3 Цели и задачи изучения темы:
В результате изучения темы
студент должен
иметь представление:
о создании программ на языке Visual C++;
знать:
цели
и задачи прикладного программирования;
этапы создания программ;
— Структура программы на языке Visual C++
уметь:
использовать инструменты прикладного программирования;
— создавать программы на языке Visual C++.
Слайд 4 Основные положения
Язык программирования – это формальная знаковая система,
которая предназначена для написания программ, понятной для исполнителя (в
нашем рассмотрении – это компьютер).
Программа, написанная на языке программирования, состоит из команд (операторов), задающих последовательность действий. Эти действия выполняются над некоторыми объектами. Объектами могут быть числа, текстовые строки, переменные и другие.
Слайд 5 Этапы создания программы
Текстовый редактор
Исходный текст модуля (.сpp)
Препроцессор
Включ. файлы
(.h)
Полный текст модуля (.сpp)
Компилятор
Объектный модуль (.obj)
Библиотеки (.lib)
Объектный модуль (.obj)
…
Компоновщик
(редактор связей)
Слайд 6 Синтаксис и Семантика
Синтаксис — это правила построения
фраз, позволяющие определить, правильно или неправильно написана та или
иная фраза. Точнее говоря, синтаксис языка представляет собой набор правил, устанавливающих, какие комбинации символов являются осмысленными предложениями на этом языке.
Семантика определяет смысловое значение предложений языка. Являясь системой правил истолкования отдельных языковых конструкций, семантика устанавливает, какие последовательности действий описываются теми или иными фразами языка и, в конечном итоге, какой алгоритм определен данным текстом на алгоритмическом языке.
Слайд 7 Алфавит языка С++
Алфавит — это фиксированный для данного
языка набор основных символов, т.е. «букв алфавита», из которых
должен состоять любой текст на этом языке — никакие другие символы в тексте не допускаются.
Прописные и строчные латинские буквы (различаются в именах), знак подчеркивания
Цифры (0…9)
Специальные знаки “ < >, | [ ] ( ) + — * / % ; ‘ : ? !
Выполнение начинается с функции main
Слайд 15 Пример программы
#include
int main()
< int a, b; //описание
переменных
cin >> a >> b; //ввод
cout
a+b; //вывод
return 0; //возврат
>
Слайд 16 Каждая подпрограмма имеет структуру, подобную функции main();
Каждая программа
содержит одну или несколько функций;
Каждая функция содержит 4 основных
1. тип возвращаемого значения; Int
2. имя функции; main()
3. список параметров, —
заключённый в круглые скобки
4. тело функции
— эта строка значит «вернуть операционной системе в качестве сигнала об успешном завершении программы значение 0».
Слайд 17
#include ; //директива процессора, предназначена
для включения в исходный текст содержимое заголовочного файла, имя
которого , содержащий описания функций стандартной библиотеки ввода/вывода для работы с клавиатурой и экраном.
using namespace std; //директива означ.что все определённые ниже имена будут отн-ся к пространству имён std
Int main() //имя функции,кот.не содержит параметров и должна возвращать значение типа Int
cout >a >>b; //оператор ввода данных с клавиатуры,
>> — операция для извлечения данных из выходного потока, читает значения из cin и сохр. их в переменных.
cout >>”их сумма равна”
Слайд 18 Препроцессор
Препроцессор — это специальная программа, являющаяся частью компилятора
языка Си. Она предназначена для предварительной обработки текста программы.
Препроцессор позволяет включать в текст программы файлы и вводить макроопределения. Работа препроцессора осуществляется с помощью специальных директив (указаний).
Они отмечаются знаком решетка #. По окончании строк, обозначающих директивы в языке Си, точку с запятой можно не ставить.
Слайд 19 Основные директивы препроцессора
#include — вставляет текст из указанного
файла #define — задаёт макроопределение (макрос) или символическую константу #undef —
отменяет предыдущее определение #if — осуществляет условную компиляцию при истинности константного выражения #ifdef — осуществляет условную компиляцию при определённости символической константы
Слайд 20 #ifndef — осуществляет условную компиляцию при неопределённости символической
константы #else — ветка условной компиляции при ложности выражения #elif —
ветка условной компиляции, образуемая слиянием else и if #endif — конец ветки условной компиляции #line — препроцессор изменяет номер текущей строки и имя компилируемого файла #error — выдача диагностического сообщения #pragma — действие, зависящее от конкретной реализации компилятора.
Слайд 21 Каждое имя, определенное в коде, появляющемся внутри пространства
имен, включает в себя имя этого пространства имен.
Все
средства стандартной библиотеки ISO/ANSI C++ определены внутри пространства имен по имени std, поэтому каждый элемент стандартной библиотеки, к которому вы можете обратиться в своей программе, имеет свое собственное имя плюс наименование пространства имен — std — в качестве квалификатора.
Применение полных имен в программе делает код несколько громоздким, поэтому было бы неплохо использовать их простые имена без квалификатора — имени пространства имен std. Две строки программы, которые следуют за директивой #include , обеспечивают упомянутую возможность:
using std::cout;
using std::endl;
using namespace std
Слайд 22 Функция main
Специальная функция main — это начальная точка
выполнения для всех С и C++ программ (точка входа
программы). При создании кода, который соответствует модели программирования Юникод, можно использовать функцию wmain, представляющую собой версию функции main для расширенных символов.
Слайд 23 Проблема русского языка
Проблема русского языка в консольных приложениях
заключается в том, что консоль и редактор кода Microsoft
Visual Studio поддерживают разные кодовые страницы.
Для того, чтобы увидеть русские символы в консоли необходимо поменять кодовую страницу в консоли, чтобы она соответствовала кодовой странице редактора (1251):
#include #include int main() system(«chcp 1251»);
system(«cls»);
.
>
Слайд 24 Переменные
Формат описания переменных:
[][= | ()];
int I,j;
double x;
Значение переменных должно быть определено с помощью:
1. оператора присваивания: int a; //описание переменной
int= a; //опред.значения.переменной
2. оператора ввода: int a; //описание переменной
cin>>a; //опред.знач.переменной
3. инициализация – опред.значения переменной на этом этапе описания.
int i=100 //инициализация копией
int i (100); // прямая инициализация
Слайд 25 Домашнее задание
Установить среду программирования Visual Studio 2010 на
домашних компьютерах.
Создать проект и произвести компиляцию примера приведенного на
занятие:
#include
int main()
< int a, b; //описание переменных
cin >> a >> b; //ввод
cout
Слайд 26 Список использованных источников
Информатика, 10-11 класс, Углублённый уровень, Часть
1, Поляков К.Ю., Еремин Е.А., 2013
Технология программирования на С++,
Литвиненко Н. А., 2013
Язык программирования C++. Специальное издание., Бьерн Страуструп, 2011
Источник: findtheslide.com
С++ // язык программирования. Структура программы С++ Каждая подпрограмма имеет структуру, подобную функции main(); Каждая программа содержит одну или. — презентация
Презентация на тему: » С++ // язык программирования. Структура программы С++ Каждая подпрограмма имеет структуру, подобную функции main(); Каждая программа содержит одну или.» — Транскрипт:
1 С++ // язык программирования
2 Структура программы С++ Каждая подпрограмма имеет структуру, подобную функции main(); Каждая программа содержит одну или несколько функций; Каждая функция содержит 4 основных элемента: 1. тип возвращаемого значтения; Int 2. имя функции; main() 3. список параметров, — заключённый в круглые скобки 4. тело функции — эта строка значит «вернуть операционной системе в качестве сигнала об успешном завершении программы значение 0».
3 Организация консольного – ввода/вывода данных ( т.е. в режиме чёрного экрана) #include ; #include ; //директива процессора, предназначена для включтения в исходный текст содержимое заголовочного файла, имя которого, содержащий описания функций стандартной библиотеки ввода/вывода для работы с клавиатурой и экраном. using namespace stg; std using namespace stg; //директива означ.что все определённые ниже имена будут относя к пространству имён std Int main() Int main() //имя функции,кот.не содержит параметров и должна возвращать значение типа Int a >>b; // cin >>a >>b; //оператор ввода данных с клавиатуры, >> — операция для извлечтения данных из выходного потока, читает значтения из cin и сохр. их в переменных. cout >> >их сумма равна
4 Стандартные типы данных Целые типы данных – short, int, long и спецификаторы (signed,unsigned); Вещественные типы – float, double, long double; Cимвольные типы – char, wchar_t; Логический тип – bool, принимающий значтения (true-истина, false-ложь); Константы (const) a=b+2,5 //неименованная константа; 1L — целочисленный литерал (тип long); 8 – целочисл.литерал (тип Int); f, – символьный литерал, n-конец строки Формат описания именованной константы: [ ]const = ; const int l= — 124; const floak k1=2,345, k=1/k1 Класс памяти- это спецификатор, определяющий время жизни и область видимости данного объекта. Выражение, определяет значение именованной константы, т.е инициализирует её.
5 Переменные Формат описания переменных: [ ] [= | ( )]; Пример: int I,j; double x; Значение переменных должно быть определено с помощью: 1. оператора присваивания: int a; //описание переменной int= a; //опред.значтения.переменной 2. оператора ввода: int a; //описание переменной cin>>a; //опред.знач.переменной 3. инициализация – опред.значтения переменной на этом этапе описания. int i=100 //инициализация копией int i (100); // прямая инициализация
6 Управление форматом вещественных типов данных Сущ.три аспекта оформления значтения с плавающей запятой которыми можно управлять: Сущ.три аспекта оформления значтения с плавающей запятой которыми можно управлять: — точность( кол-во отображаемых цифр), изменяется с помощью манипулятора setprecision; — форма записи (десятичная или экспонец-ая); — указание десятичной точки для значтения с пл.запятой, являющихся целыми числами. — #include Результат работы программы: — #include 1.23e using namespace std; int main() < double i= 12345,6789; — cout
7 Управление размещение данных на экране Используются манипуляторы: 1 1. left – выравнивает вывод по левому краю; 2 2. right – выравнивает вывод по правому краю; 3 3. internal – контролирует размещение отрицательного значтения: выравнивает знак по левому краю, а значение по правому, заполняя пространство между ними пробелами; 4 4. setprecision(int w) – устанавливает max кол-во цифр в дробной части для вещественных чисел; 5 5. setw(int w) – устанавливает max ширину поля вывода; Пример: Получим: #include 1. Ivanov; #include 2.Ivanov; using nanespace std; 3. Ivanov; int main() < cout
8 Операции. Унарные операции Операции увеличтения (декремента) и уменьшения (инкремента) на 1(++ и —); записываются в двух формах: Префиксия – операция записывается перед операндом и увеличивает свой операнд на 1 и возвращает изменённоё значений как результат Постфиксия – операция записывается после операнда, уменьшает свой операнд на 1 и возвр.изменённое знач.как результат. Пример: #include int main() using nanespace std; < int x=3, y=4; cout
9 Операции отрицания (-,!) (-) — унарный минус – изменяет знак операнда целого или вещественного типа на противоположный; (!) – логическое отрицание, даёт в результате значение 0(ложь), если операнд отличен от 0(истина),если равен операнд 0 (ложь); тип операнда может быть любой. Пример: #include int main() using nanespace std; < int x=3, y=0; bool f=false, v=true; cout
10 Бинарные операции Арифметические операции: умножение.(*), деление.(/), остаток от деления.(%); слов.(+), вычет.(-) Рассмотрим операции деления и остаток от деления: #include using nanespace std; int main() < cout =, == !=), меньше, меньше или равно, больше, больше или равно, равно, не равно, не равно соответственно). Результатом операций являются значтения true, false.
12 Операции присваивания формат операция простого присваивания (=): операнд_1 = операнд_2 пример: a=b=c=100, это выражение выполняется справа налево, результатом выполнения с=100, является число 100, которое затем присвоиться переменной b, потом а. Сложные операции присваивания: (*=) – умножение с присв-ем, ( /=) — деление с присв-ем (%= )- остаток от деления с присв-ем, (+=) –словение с присв., (-=) — вычет.с присв. пример: к операнду _1 прибавляется операнд_2 и результат записывается в операнд_2 с += а т.е. с = с + а, тогда компактная запись с += а
13 Тернарная операция Условная операция (? : ) Формат условной операции: операнд_1 ? операнд_2 ? : операнд_3 Операнд_1 это логическое или арифметич-ое выражение; Оценивается с точки зрения эквивалентности константам true и false; Если результат вычисления операнда_1 равен true,то результат условной операции будет значение операнда_2, иначе операнда_3; Тип может различаться; Условная операция является сокращ. формой услов-го оператора if; Пример: Результат: #include для х=11 и y=9 int main() 11 using nanespace std; 11 < int x, y,max; cin >>x>>y; (x>y)? cout y)? x:y; //2 чтения для двух целых чисел; cout
14 Операторы С++ Программа на языке С++ состоит из последовательности операторов, каждый из них определяет значение некоторого действия; Все операторы разделены на 4 группы: — операторы следования; — операторы ветвления; — операторы цикла; — операторы передачи управления.
15 Операторы следования К ним относя : оператор выражение и составной оператор. Выражение, завершающееся точкой с запятой, рассматривается как оператор (вычислении значтения выражения или выполнении законченного действия); ++i; //оператор инкремента х+=у; //оператор словение с присваиванием f(a, b) //вызов функции x= max (a, b) + a*b; //вычисление словного выражения Частным случаем оператора выражения является пустой оператор ; (используется, когда по синтаксису оператор требуется, а по смыслу нет) Составной оператор или блок представляет собой последоват-ть операторов, заключенных в фигурные скобки.
Блок обладает собственной областью видимости: объявленные внутри блока имена доступны только внутри блока; Составные операторы применяются в случае, когда правила языка предусматривают наличие только одного оператора, а логика программы требует нескольких операторов. 16 Операторы ветвления К ним относя : условный оператор if и оператор выбора switch, они позволяют изменить порядок выполнения операторов в программе ; Условный оператор if if используется для разветвления процесса обработки данных на два направления. if if имеет формы: сокращенную или полную.
Формат сокращенного оператора if: if (В) S; В –логич. или арифметич. выражение, истинность которого проверяется; S — один оператор: простой или составной. При выполнении сокращенной формы оператора if сначала вычисляется выражение В, затем проводится анализ его результата: если В истинно, то выполняется оператор S; если В ложно, то оператор S пропускается.
C помощью сокращенной формы оператора If можно либо выполнить оператор S, либо пропустить его. Формат полного оператора if: if (B) S1 ; else S2; SI, S2- один оператор: простой или составной. При выполнении полной формы оператора if сначала вычисляется выражение В, затем анализируется его результат: если В истинно, то выполняется оператор S1 а оператор S2 пропускается; если В ложно, то выполняется оператор S2, a S1 — пропускается. C помощью полной формы оператора if можно выбрать одно из двух альтернативных действий процесса обработки данных.
17 Примеры записи условного оператора if. if (a > 0) х=у; // сокращенная форма с простым оператором if (++i) // сокращенная форма с составным оператором if (а > 0 |’| b
18 Оператор выбора switch предназначен для разветвления процесса вычислений на несколько направлений. Формат оператора: switch ( ) Выражение, стоящее за ключевым словом switch, должно иметь арифметич. тип или тип указатель. Все константные выражения должны иметь разные значтения, но совпадать с типом выражения, стоящим после switch. Ключевое слово case и расположенное после него константное выражение называют также меткой case.
19 Выполнение оператора начинается с вычисления выражения, расположенного за ключевым словом switch. Полученный результат сравнивается с меткой case. Если результат выражения соответствует метке case, то выполняется оператор, стоящий после этой метки. Затем последовательно выполняются все операторы до конца оператора switch, если только их выполнение не будет прервано с помощью оператора передачи управления break При использование оператора break происходит выход из switch и управление переходит к первому после него оператору. Если совпадения выражения ни с одной меткой case не произошло, то выполняется оператор, стоящий после слова default, а при его отсутствии управление передается следующему за switch оператору.
20 Операторы цикла Операторы цикла используются для организации многократно повторяющихся вычислений. — цикл с предусловием while, — цикл с постусловием do while — цикл с параметром for. Цикл с предусловием while: Оператор цикла while организует выполнение одного оператора (простого или составного) неизвестное заранее число раз. Формат цикла while: while (В) S; В — выражение, истинность которого проверяется (условие завершения цикла); S — тело цикла: один оператор (простой или составной). Перед каждым выполнением тела цикла анализируется значение выражения В: — если оно истинно, то выполняется тело цикла, и управление передается на повторную проверку условия В; — если значение В ложно — цикл завершается и управление передается на оператор, следующий за оператором S. — если результат выражения В окажется ложным при первой проверке, то тело цикла не выполнится ни разу
21 — если условие В во время работы цикла не будет изменяться, то возможна ситуация зацикливания, то есть невозможность выхода из цикла. Внутри тела должны находиться операторы, приводящие к изменению значтения выражения В так, чтобы цикл мог завершиться. Рассмотрим программу вывода на экран целых чисел из интервала от 1 до n. #include using namespace std: int main() < intn, i=1; cout >n; while (i
22 Цикл с постусловием do while В отличие от цикла while условие завершения цикла проверяется после выполнения тела цикла. Формат цикла do while: do S while (В); В — выражение, истинность которого проверяется (условие завершения цикла); S — тело цикла: один оператор (простой или блок). Сначала выполняется оператор S, а затем анализир-ся значение выражения В: — если оно истинно, то управление передается оператору S, — если ложно — цикл заверш. и управление передается на оператор, следующий за условием В. Пример(do while): программа вывода на экран целых чисел из интервала от 1 до п. #include using namespace std; int main() n; do//выводим на экран i, а замет увеличиваем Результаты работы программы: сout
23 Цикл с параметром for Цикл с параметром имеет следующую структуру: for ( ; ; ) ; Инициализация используется для объявления и присвоения начальных значений величинам, используемым в цикле. В этой части можно записать несколько операторов, разделенных запятой. Областью действия переменных, объявленных в части инициализации цикла, является цикл и вложенные блоки.
Выражение определяет условие выполнения цикла: — если его результат истинен, цикл выполняется. Истинность выражения проверяется перед каждым выполнением тела цикла, таким образом, цикл с параметром реализован как цикл с предусловием. Модификации выполняются после каждой итерации цикла и служат обычно для изменения параметров цикла. В части модификаций можно записать несколько операторов через запятую. Оператор (простой или составной) представляет собой тело цикла.
24 Любая из частей оператора for (инициализация, выражение, модификация, оператор) может отсутствовать, но точку с запятой, определяющую позицию пропускаемой части, надо оставить. #include using namespace std; int main() < intn; cout >n; Результаты работы программы: for (int i=1; j
25 Вложенные циклы Циклы могут быть простые или вложенные (кратные, циклы в цикле). Вложенными могут быть циклы любых типов: while, do while, for. Структура вложенных циклов на примере типа for приведена ниже: for(i=1;i jk;j- -) <. for(k=1;k
26 Операторы безусловного перехода В C++ есть четыре оператора, изменяющие естественный порядок выполнения операторов: оператор безусловного перехода goto, оператор выхода break, оператор перехода к следующей итерации цикла continue, оператор возврата из функции return.
27 Оператор безусловного перехода goto Оператор безусловного перехода goto имеет формат: goto ; В теле той же функции должна присутствовать ровно одна конструкция вида: : ; Оператор goto передает управление на помеченный меткой оператор пример использования оператора goto: #indude using namespace std; int main()
28 Оператор выхода break Оператор break используется внутри операторов ветвления и цикла для обеспечтения перехода в точку программы, находящуюся непосредственно за оператором, внутри которого находится break. Оператор break применяется также для выхода из оператора switch, аналогичным образом он может применяться для выхода из других операторов.
29 Оператор перехода к следующей итерации цикла continue Оператор перехода к следующей итерации цикла continue пропускает все операторы, оставшиеся до конца тела цикла, и передает управление на начало следующей итерации (повторение тела цикла). Рассмотрим оператор continue на примере: #include using namespace std; int main() < for (int i=1; i
30 Массивы. Указатели. Когда компилятор обрабатывает оператор определения переменной, например, int а =50;, то он выделяет память в соответствии с типом int и записывает в нее значение 50) Все обращения в программе к переменной по ее имени заменяются компилятором на адрес области памяти, в которой хранится значение переменной., такие переменные называются указателями. В C++ различают три вида указателей: — указатели на объект, — на функцию и на void; Указатель на объект содержит адрес области памяти, в которой хранятся данные определенного типа (простого или составного). Объявление указателя на объект имеет следующий вид: [ ] *
31 Указатель может быть переменной или константой, указывать на переменную или константу, а также быть указателем на указатель. Например: int i; //целочисленная переменная const int j=10;//целочисленная константа int *a;//указатель на целочисленное значение int **x;//указатель на указатель на целочисленное значение const int *b; //указатель на целочисленную константу int * const c=//указатель-константа на целочисленную переменную const int ‘const d= //указатель константа на целую переменную Указатель типа void применяется в тех случаях, когда конкретный тип объекта, адрес которого нужно хранить, не определен. Указателю на void можно присвоить значение указателя любого типа, а также сравнить его с любым указателем, но перед выполнением каких-либо действий с областью памяти, на которую он ссылается, требуется преобразовать его к конкретному типу явным образом.
32 ссылки Ссылка представляет собой синоним имени, указанного при инициализации ссылки. Ссылку можно рассматривать как указатель, который разыменовывается неявным образом.
Формат объявления ссылки: //целочисленная переменная int //ссылка на целочисленную переменную а Следующий пример: #include using namespace std; int main()
33 Одномерный массив Одномерный массив — это фиксированное количество элементов одного и того же типа, объединенных общим именем, где каждый элемент имеет свой номер. Нумерация элементов массива в C++ начинается с нулевого элемента, то есть, если массив состоит из 10 элементов, то его элементы будут иметь следующие номера: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Элементы массива могут быть любого типа, в том числе и структурированного (кроме файлового). Между указателями и массивами существует взаимосвязь: любое действие над элементами массивов, которое достигается индексированием, может быть выполнено и с помощью указателей. Вариант программы с указателями будет работать быстрее.
34 Двумерные массивы Двумерные массивы (матрицы, таблицы) — представляют собой фиксированное количество элементов одного и того же типа, объединенных общим именем, где каждый элемент определяется номером строки и номером столбца, на пересечении которых он находится. Двумерные массивы находят свое применение тогда, когда исходные данные представлены в виде таблицы, или когда для хранения данных удобно использовать табличное представление. Нумерация строк и столбцов начинается с нулевого номера. Поэтому если массив содержит три строки и четыре столбца, то строки нумеруются: О, 1, 2; а столбцы: 0, 1, 2, 3. В C++ двумерный массив реализуется как одномерный, каждый элемент которого также массив.
Источник: www.myshared.ru