Нетипизированные константы
Нетипизированные константы
#define <имя константы> <значение> /* директива описания константы, применялась в C */ |
#define PI 3.14159
Директива препроцессора – указание компилятору. Начинается с символа # и не заканчивается точкой с запятой (;).
const <имя константы> : <тип> = <значение>; [<имя константы> : <тип константы> = <значение>;] |
const n: integer = -10;
Нетипизированные константы
const <имя переменной> = <значение>; [<имя переменной> = <значение>;] |
const n = -10;
[Private|Public] Const <имя константы> As <тип> = <значение> |
Const PI As Single = 3.14159
Нетипизированные константы
[Private|Public] Const <имя константы> = <значение> |
Const PI=3.14159
Комментарии являются важной частью любой программы. Они помогают разобраться в действиях программы как разработчику, так и любому другому человеку, читающему код. Компилятор игнорирует все, что помечено в программе как комментарий, поэтому комментарии не включаются в содержимое исполняемого файла и никак не влияют на ход исполнения программы. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
// однострочный комментарий /* устаревший вид комментариев (многострочный) */ | { многострочный комментарий (характерный для классического Pascal) } (* многостр. комментарий (Object Pascal он же Delphi) *) // одностр. комментарий (Object Pascal) | ‘ однострочный комментарий | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Операции – стандартные действия, разрешенные для переменных того или иного базового типа данных. Сначала вычисляются значения операций с более высоким приоритетом, затем – с менее высоким. Несколько подряд идущих операций одного приоритета вычисляются в последовательности «слева направо». | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Приоритет операций C++
| Приоритет операций Pascal
| Приоритет операций Basic
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Инструкцияилиоператор(англ. statement) – наименьшая автономная часть языка программирования; команда. Программа обычно представляет собой последовательность инструкций. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Символ конца оператора – «;» | Символ конца оператора – «;» | Символ конца оператора – конец строки | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Операторные скобки – скобки или команды, определяющие в языке программирования блок команд, воспринимаемый как единое целое, как одна команда. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Операторные скобки в C++
| Операторные скобки в Pascal
| Операторные скобки в Basic В языках семейства Basic операторные скобки не предусмотрены. Использование блоков в данных языках обеспечивается за счет специальных разновидностей конструкций. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Оператор присваивания – оператор применяется для присваивания значения переменной или выражения другой переменной. В блок-схемах обычно изображается следующим образом – . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
var1 = 20; var2 = var1+10; |
var1 := 20; var2 := var1+10; |
var1 = 20 var2 = var1+10 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Преобразования типов В выражениях и в операторах присваивания могут фигурировать переменные и константы разных типов. В этом случае осуществляется приведение типов, что обозначает преобразование одного типа в другой. Приведение типов может быть неявным и явным. Неявное приведение совместимых типов автоматически осуществляет компилятор. При этом всегда более младший тип, занимающий меньший объем памяти, приводится к типу, занимающему больший объем. Явное приведение типов – использование специальных функций, преобразующих значения одного типа в другой тип. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Иерархия типов данных
| Иерархия типов данных
| Иерархия типов данных
|
Оператор ветвления – оператор, позволяющий из нескольких возможных вариантов выполнения программы (ветвей) выбрать только один. В блок-схемах обычно изображается следующим образом – . | |||||
Условный оператор if
if (a>10) a=1; if (a<10) a=11; else a=1; if (a==10) {a=1; b=2;} if (a<>10) {a=2; b=1;}else{a=1; b=2;} | Условный оператор if
if a>10 then a:=1; if a<10 then a:=11 else a:=1; if a=10 thenbegina:=1; b:=2 end; if a<>10 thenbegina:=2; b:=1 end else begina:=1; b:=2 end; | Условный оператор if
If a>10 Then a=1 If a<10 Then a=11 Else a=1 If a=10 Then a=1 b=2 End If If a<>10 Then a=2 b=1 Else a=1 b=2 End If |
Условный оператор switch
switch (2*2) { case 1: n=1; case 2: n=2; case 3: n=3; default: n=4; } В частях case значение всегда должно быть константой, вычисленной на этапе компиляции. Операции сравнения в частях case запрещены. Break позволяет завершить ветвление преждевременно. | Условный оператор case
Case (2*2) of 1: n:=1; 2: n:=2; 3: n:=3; else: n:=4; end; В частях Case могут содержаться списки значений. | Условный оператор select
Select Case 2*2 Case 1: n=1 Case 2: n=2 Case 3: n=3 Case Else: n=4 End Select В частях Case могут содержаться списки значений, могут использоваться операции сравнения. |
Цикл – некоторая последовательность действий, которая может повторяться неоднократно. Последовательность действий, предназначенная для многократного исполнения, называется телом цикла. Однократное выполнение тела цикла называется итерацией. Выражение определяющее, будет в очередной раз выполняться итерация, или цикл завершится, называется условием выхода или условием окончания цикла (либо условием продолжения в зависимости от того, как интерпретируется его истинность – как признак необходимости завершения или продолжения цикла). Переменная, хранящая текущий номер итерации, называется счётчиком итераций цикла или просто счётчиком цикла. Цикл не обязательно содержит счётчик, счётчик не обязан быть один – условие выхода из цикла может зависеть от нескольких изменяемых в цикле переменных, а может определяться внешними условиями (например, наступлением определённого времени), в последнем случае счётчик может вообще не понадобиться. Параметр цикла – управляет работой цикла. В качестве параметра цикла может выступать переменная или выражение, отвечающее следующим условиям: 1 параметр цикла задан до входа в цикл, 2 параметр цикла должен изменяться в теле цикла, 3 параметр цикла должен участвовать в условии окончания цикла. Параметр цикла всегда только ОДИН. Основные виды циклов: 1. Цикл со счётчиком (с фиксированным числом повторений) – организует выполнение набора команд фиксированное число раз. В блок-схемах обычно изображается следующим образом – . 2. Цикл с предусловием – цикл, который выполняется пока истинно некоторое условие, указанное перед его началом. Это условие проверяется до выполнения тела цикла, поэтому тело может быть не выполнено ни разу (если условие с самого начала ложно). В блок-схемах обычно изображается комбинацией условия и действий. 3. Цикл с постусловием – цикл, в котором условие проверяется после выполнения тела цикла. Отсюда следует, что тело всегда выполняется хотя бы один раз. В блок-схемах обычно изображается комбинацией условия и действий. | |||||
Цикл со счётчиком C++ (свободная форма)
for (j=0; j<15; j++) n++; for (j=0; j<15; j++) {n++; k--;} for (j=0, i=1; j<15; j++, i--) n++; | Цикл со счётчиком Pascal (строгого вида)
for j:=0 to 15 do n:=n+1; for j:=15 downto 0 do n:=n+1; for j:=0 to 15 do begin n:=n+1 end; | Цикл со счётчиком Basic
For j=0 To 15 n=n+1 Nextj |
Цикл с предусловием C++
while (j<15) j++; | Цикл с предусловием Pascal
whilei<=100 do | Цикл с предусловием Basic
Do While i<10 s=s+i i=i+1 Loop | |||
Цикл с постусловием C++
do {s=s+i; i--;} while (i>10) | Цикл с постусловием Pascal
repeats:=s+i; i:=i-1 untili>10; | Цикл с постусловием Basic
Do s=s+i i=i-1 Loop Untili>10 | |||
Существует возможность организовать цикл внутри тела другого цикла. Такой цикл будет называться вложенным циклом. Вложенный цикл по отношению к циклу в тело которого он вложен будет именоваться внутренним циклом, и наоборот цикл в теле которого существует вложенный цикл будет именоваться внешнимпо отношению к вложенному. Внутри вложенного цикла в свою очередь может быть вложен еще один цикл, образуя следующий уровень вложенности и так далее. Количество уровней вложенности как правило не ограничивается. Полное число исполнений тела внутреннего цикла не превышает произведения числа итераций внутреннего и всех внешних циклов. Например взяв три вложенных друг в друга цикла, каждый по 10 итераций, получим 10 исполнений тела для внешнего цикла, 100 для цикла второго уровня и 1000 в самом внутреннем цикле. Правило «цикла в цикле»: 1 любой внутренний цикл должен заканчиваться раньше внешнего, 2 параметр внешнего цикла не должен изменяться во внутренних циклах, но любой параметр внутреннего цикла может быть использован как угодно во внешних циклах. |
Операторы перехода C++ break;/* оператором выполняемым после break, будет первый оператор, находящийся вне данного цикла (применим и к switch) */ continue;/* данный оператор завершает текущую итерацию цикла и производит переход к следующей */ goto<метка>;/* оператор безусловного перехода */ | Операторы перехода Pascal break;{ оператором выполняемым после break, будет первый оператор, находящийся вне данного цикла } continue;{ данный оператор завершает текущую итерацию цикла и производит переход к следующей } goto<метка>;{ оператор безусловного перехода } | Операторы перехода Basic Exit For/Do‘ оператором выполняемым ‘после Exit For/Do, будет ‘ первый оператор, ‘ находящийся вне данного ‘ цикла GoTo<метка> ‘ оператор безусловного ‘ перехода | |||
Операторы ввода/вывода – команды служащие для передачи в программу исходных данных и получения из нее некоторого результата. В блок-схемах обычно изображается следующим образом – . Консоль – особое понятие, обозначающее в программировании клавиатуру при вводе и монитор при выводе. | |||||
Операторы ввода в C++
#include <iostream> using namespace std; void main() { int ftemp; cin>> ftemp } | Операторы ввода в Pascal
Read(i); ReadLn(i,j); | Операторы ввода в Basic
I=InputBox(“введи число”, “ввод”, “10”) |
Операторы вывода в C++
#include <iostream> using namespace std; void main() { cout << “Хороший пример.” << endl; } | Операторы вывода в Pascal
Write(‘a=’); ReadLn(a); WriteLn(‘Введено число ’, a); | Операторы вывода в Basic
MsgBox(“Введено число ” & a) |
Форматированный вывод в C++ Способы форматирования вывода: 1. Использование управляющих последовательностей (УП)
cout << A << ‘\t’ << B; 2. Использование манипуляторов #include <iomanip>
cout << setw(9) << “Мама” << endl; 3. Использование функций printf, sprintf | Форматированный вывод в Pascal Write(‘A=’,<форматированное выражение>);
Write(‘A=’,A:9:5); | Форматированный вывод в Basic MsgBox(Format(<значение>|<выражение>[, <шаблон форматирования>]) MyStr = Format(23) ' Возвратит "23". MyStr = Format(5459.4, "##,##0.00") ' Возвратит "5,459.40". MyStr = Format(334.9, "###0.00") ' Возвратит "334.90". MyStr = Format(5, "0.00%") ' Возвратит "500.00%". MyStr = Format("HELLO", "<") ' Возвратит "hello". MyStr = Format("This is it", ">") ' Возвратит "THIS IS IT". Функция Format возвращает исходное значение в виде отформатированной строки. Если шаблон форматирования не указан, то возвращается строковый аналог исходного значения. |
Структура программы C++
#include <iostream> using namespace std; intmain() { int s=0,i=1; while (i<=100) { s+=i; i++; } cout << s; return s; } | Структура программы Pascal
Сразу же необходимо сделать важную оговорку: поздние версии компиляторов языка Pascal уже не требуют указывать название программы, то есть строку program <имя программы>; вообще говоря, можно опустить. Uses, Label, Const, Type, Var, Procedure, Function – образуют одноименные блоки, а потому приведенные ключевые слова указываются только в начале блока, завершается же блок знаком “;”. Program XXX; Var s,i : integer; Begin s:=0; i:=1; while i<=100 do begin s:=s+i; i:=i+1 end; writeln(‘s=’;s:5) End. | Структура программы Basic
Exit Sub позволяет завершить программу не дожидаясь выполнения всех ее операторов. Sub XXX Dim s As integer Dim i As integer s=0 i=1 Do While i<=100 s=s+i i=i+1 Loop MsgBox(“s=” & s) End Sub |
Контроль вводимых данных в C++ В библиотеке <cstdlib> существует несколько функций для приведения строки в числовой вид: atoll, atoi, atof. Синтаксис функций: yourDouble=atof(’23dfg’); yourInt=atoi(‘fd234’); yourLong=atol(‘fdgb33d’); Класс <sstream> позволяет преобразовывать строки через поток stringstream. Синтаксис функций: #include <iostream> #include <sstream> #include <string> using namespace std; int main(){ string s=“100”; int a; stringstream conv; conv << s; conv >> a; conv.clear(); } | Контроль вводимых данных в Pascal Процедура Val позволяет преобразовать строку в число и уведомить о встретившихся ошибках. Синтаксис процедуры: Val(<строка>,<числовая переменная>,<целочисленная переменная для кода ошибки>); Процедура пытается преобразовать переданную ей строку в число, полученное число помещается в переданную числовую переменную. В случае возникновения ошибки в переменную кода ошибки будет записан номер ошибочного символа в строке. Допустимые символы: 0-9, +, -, ., E Val(‘23 sdf’,A,cod) {A=0, Cod=4} | Контроль вводимых данных в Basic Функция Val позволяет преобразовать строку в число. Синтаксис функции: <числовая переменная> = Val(<строка>) Процедура пытается преобразовать переданную ей строку в число. Если в строке содержатся недопустимые символы, то они игнорируются. Допустимые символы: 0-9, +, -, ., E A=Val(“23 sdf sdf”) ‘ результат 23 |
Подпрограмма– самостоятельная программа, которая может быть вызвана другими программами. В блок-схемах обычно изображается следующим образом – . Подпрограммы делятся на два вида: 1. подпрограммы-функции – подпрограмма, которая обязательно возвращает значение через своё имя; 2. подпрограммы-процедуры – подпрограмма, которая может не возвращать значений. Существуют два варианта обмена данными с подпрограммами: 1. используя локальные и глобальные переменные; 2. используя формальные и фактические параметры. Область видимости определяет, из каких частей программы возможен доступ к переменным. Область видимости локальных переменных - текущий программный блок, а глобальных переменных – все блоки, входящие в данный блок. Аргумент/параметр подпрограммы – это единица данных, передаваемая в подпрограмму. Фактический параметр – переменная/выражение, значение которого передаётся в подпрограмму и соответствуют типу формального параметра. Формальный параметр – переменная, принимающая значение фактического параметра, переданного в подпрограмму. Таким образом формальный параметр получает значение фактического. Существует два способа передачи параметров: 1. по значению – когда для формального параметра выделяется место в памяти и значение фактического параметра дублируется в данную область, 2. по ссылке – когда формальный параметр получает не значение фактического параметра, а его адрес в памяти, что позволяет использовать один единственный блок памяти. Рекурсия – обращение подпрограммы самой к себе. |
Структура подпрограммы-функции в C++
Объявление функции (прототип) – содержит имя функции, типы ее аргументов и возвращаемое значение. Используется для указания компилятору, что данная функция будет определена позднее. Вызов функции – указывает компилятору на необходимость выполнения функции. Определение функции – собственно сама функция. Объявление функции не обязательно при условии определения функции ДО ЕЁ ПЕРВОГО ВЫЗОВА! При описании прототипа с параметрами в скобках указываются типы параметров или (по желанию) типы и имена параметров. В дальнейшем при определении функции необходимо придерживаться сигнатуры функции, описанной в прототипе. Вариант с объявлением функции #include <iostream> using namespace std; void starline(); intmain(){ starline();return s; } void starline() { for(int j=0; j<45; j++) cout << ‘*’; cout << endl; } Вариант без объявления функции #include <iostream> using namespace std; void starline() { for(int j=0; j<45; j++) cout << ‘*’; cout << endl; } intmain(){ starline(); return s; } | Структура подпрограммы-функции в Pascal
Определение функции обязательно ДО ЕЁ ПЕРВОГО ВЫЗОВА! Program Pr; Var a,b : integer; Function summ(a,b : integer) : integer; Begin summ:=a+b; end; Begin Read(a,b); Write(summ(a,b)); End. | Структура подпрограммы-функции в Basic
Наши рекомендации
|