Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КПиЯП.docx
Скачиваний:
7
Добавлен:
25.09.2019
Размер:
75.59 Кб
Скачать

История создания систем программирования

Николас Вирт- 1971 Pascal, на основе ada

Бьёрн Страуструг- 1983 С++,2000 С#

Prolog, lisp- на основе assembler, 5е поколение ЭВМ

ЯП:

-оперативные:

-машинно-зависимые

-машинно-ориентированные

-

-функциональные:

-объектно-ориентированные

-логико-ориентированные

-проблемно-ориентированные

ООП- основывается на 3х концепциях: инкапсуляция, наследование, полиморфизм.

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

Полиморфизм в своей основе реализует идею- 1н интерфейс, множество методов.

Наследование- процесс, по средствам которого 1н объект может приобретать свойства другого и добавляет к ним черты, характерные только для него.

Типы данных. Структура программы

Используемые символы

Множество символов используемых в языке С делятся на 5 групп:

Первая представляет собой символы для обозначения идентификаторов (строчные прописные буквы английского алфавита и _)

Вторая - прописные/строчные буквы русского алфавита + арабские цифры

Третья- спец символы и знаки пунктуации(/,\,:, . , , )

Четвёртая- управляющие и разделяющие символы (пробелы и т.д.)

Пятая- управляющие последовательности- специальные символьные комбинации, используемые в операциях ввода/вывода(/n-переход на новую строку, \о- конец строки)

Константы

Называются зарезервированные переменные . Целые, с плавающей точкой, символьные. Это десятичные числа, представленные с точкой или экспонентой ([цифры].[цифры] [E/,[+/-]цифры])

Любые буквы в || кавычках является односимвольными. В двойных – строковая последовательность “_”. Все они идут как массив.

Auto

Switch

Case

Sizeof

Double

Resister

Flood

Volataiz

Int

Tupedef

Unsigned

Continue

Struct

Char

Default

Enum

Break

Extern

For

Short

Else

Return

Signed

While

Long

Void

Union

Doit

Комментарии:

//- однострочные комментарии

/*_*/- комментарии побольше

Типы данных

Делятся на две группы - основные и производные

1.Представляют целые числа и числа с плавающей точкой

2.Относят массивы, строки, структуры, указатели

Основные целочисленные

Char, int, short, long- разделяются на со знаком и без знака( siagned, unsiagned)

Со знаком- -128…127, без- 0…255

Числа с плавающей запятой

Float(32), double(48), long double(64). Данные этих типов характеризуются числом значащих цифр, которые они могут иметь и минимальным числом допустимых значений экспоненты.

Emom – обозначает последовательность диапазонов.

#include<iostream>

Using namespace stg;

Int main ()

{cout <<”Добро пожаловать в С++!\n”;

Return 0;

}

Программа на С++ строится из отдельных блоков называемых функциями. Данная программа содержит следующие элементы:

-директиву при процессе include

-директиву using namespace

-заголовок int main

-тело функции ограниченно{ }

-оператор, в котором для вывода на экран используется объект cout

-оператор return- завершающий выполнение функции main

Функция main

В своей структуре данная функция состоит из двух частей:

1:заголовок int main

2:тело функции заключено в фигурные скобки

Заголовок функции

….conio.h

Выражения. Операторы

Оператор присваивания- v=e, сначала вычисляется е и лишь затем присваивается. Имеет расширение v on= e, где вместо on может быть любой знак.

V on= e v= v on e

A + =2  a=a + 2

s/=a  s=s/a

(a=b)+=c a=b; a=a + c

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

Бывают 2х видов: бинарные и унарные.

Бинарные АО- +, -, *, %(остаток от деления),/.

10%3=1

10/3=3

10.0/3=3.333….

Унарные: автоувеличение и автоуменьшение(++, --)

Префиксная: ++операнд

--операнд

Постфиксная: операнд ++

операнд --

Если знак операции стоит перед операндом, результатом операции является увеличенное или уменьшенное значение операнда.

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

Int i=0, j=o, k, l

K=++i, //k=1 ,i=1

L=j++, //l=0 ,j=1

--k; //k=0

++j;//j=2

K=i+1 k=I;k=i++ k=I,i=i+1

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

>=,>,<,=<,==(равно),!=(неравно)

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

Унарная операция логического «не»(not)

Def: !;

If ! a c=d

Бинарная операция логического «и»(and)

Def:&&;

If (a<1)&&(b>2) c=d

Бинарная операция логического «или»(or)

Def: ||;

If (a<1)||(b>2) c=d

Операция «не» даёт ноль(лож), если операнд не нулевой, и единицу в противном случае.

Операция «и» даёт значение 1 если оба операнда имеют ненулевое значение.

Операция «или»- вырабатывает значение ноль, если оба операнда равны нулю и единицу в противном случае.

Побитовые операции

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

Побитовая операция поразрядного «или» - (|) сравнивает каждый бит первого с каждым битом второго, если оба из них либо 1н какой-то равен единице- результат 1, в противном случае 0.

Операция поразрядного исключающего «или»- (^) если один из бит равен нулю а другой единице результат единица, в противном случае ноль.

Унарная операция поразрядного отрицания –(~) Операция меняет в битовом представлении ноль на один, один на ноль.

Операции сдвига- (<<,>>) осуществляет сдвиг влево и вправо своего левого операнда на число битовых позиций , указанных правым операндом.

X<<2- х сдвигается влево на 2е позиции (умножение на 4)

x>>2- х сдвигается вправо на 2 (деление на 4)

Тернарная операция. Общий вид:

Операнд1 ? операнд2 : операнд3

Для этой операции важно является ли значение первого операнда

Если операнд 1-не равен нулю, т.е. выражение истинно, то вычисляется операнд2 и его значение является результатом. В противном случае вычисляется операнд3 :

Max = а<=b ? b : a (если а<=b истинно, тогда б, если ложно-а)

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

Int a=3, b=8; c;

C=a++, a+b; //a=4 ; c=12

(b--,c)*=3; //b=7 ,c=36

Явное и неявное преобразование типов

(имя_типа) операнд

Имя_типа(операнд)

Double d=(double) 5 (т.е. 5.00)

Int i=int (d) (т.е. не 5.00 а 5)

Управляющие структуры

Любая программа в С может быть написана с помощью трёх управляющих структур:

-структура следования(линейные алгоритмы)

-структура выбора

-структура повторения(циклы)

Имеется три типа структур выбора: -if (выражение) операнд1; …if (i<=60) i ++

-if | else if ( выражение>e)оператор1 …[else оператор2];

-switch

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

Структура if |else называется основным выбором, т.к. осуществляет выбор между двумя различными действиями.

If (i<60)

{i++;

C=k+I;

}

Else {i++;k++;}

If (i<=60)

{ if(k>0)

………..

Else …………

}

Else ……….;

Switch- оператор с множественным выбором, т.к. осуществляет выбор среди множества различных действий.

Switch (выражение)

{[объявление]

..

[case конст-выр1]:[список операторов]

[case конст-выр2]:[список операторов]

[default:[список операторов]]

}

Выражение следующие за ключевым словом switch может быть любым допустимым в С выражением значение которого целое.

Тело оператора switch состоит из нескольких операторов, помеченных ключевым словом case с последующим константным выражением.

Все константные выражение в операторе switch должны быть уникальны(не повторяться).

Объявление используется для объявления внутри новых переменных.

Int i=2

Switch (i)

{case 1:i+=2;

Case 2:i*=3;

Case 0:i/=2;

Case 4:i-=5;

Default ;

}

Switch (a)

{case 1 :b=c;

Case 2 :

Switch (d)

{case 0: f=s;

Case 1: f=9;

Case 2: f=9;

}

Case 3: b-=c;

}

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

Операторы continue вызывает прерывание выполнения, но в отличие от break в начало прерванного оператора.

Задача:

Даны три числа, вывести наименьшее из них.

Задача:

Студент получил отметку(отметка вводится с клавиатуры), если значение отметки ниже 4х- выдать сообщение «вы не сдали зачёт», если от 4 до 6 выдать сообщение «ваши знания удовлетворительны»,если оценка 7,8 –«вы молодец», если 9-10 – «ваш уровень знаний высок».

Задача:

Дана область. Определить принадлежит ли точка с заданными координатами области.

Структура повторение

While- структура с пред условием и используется в тех случаях когда тело оператора не всегда нужно выполнять. Общий вид-

while(выражение)

дальше тело.

Do/while- оператор с пост условием и используется в тех случаях когда необходимо выполнить тело цикла хотя бы один раз.

Do (тело)

While(выражение)

Два этих оператора можно вкладывать один в другой и прерывать оператором break:

Int I,j,k;

I=0; j=0; k=0;

Do {i++;j--;

While (k<i) k++;

}

While ((i<30)&&(j<-30));…

For- является общим циклом имеющим следующую структуру

For (выражение 1;выражение 2;выражение 3)

тело;

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

Выражение 2- это выражение определяющие условие при котором тело цикла будет выполняться.

Выражение 3 определяет изменение переменных управляющих циклом после каждого выполнения тела цикла.

Int main ()

{ int I,b;

For (i=1;i<10;i++)

{ b=i*I;

Cout <<”b=”<<i<<”*”<<i<<”=”<<b<<”\n”;

}

Return 0;

}

Оператор for можно заменить оператором while:

Выражение 1;

While(выражение 2)

{тело;

Выражение;

}

Задача 1:

Вывести последовательность Н чисел больше 20 и кратных 5.

Задача 2:

Вывести таблицу умножения от 1 до 10.

Задача 3:

Вычислить выражение-