Виды языков программирования. Трансляция и интерпретация. Эволюция языков программирования. Логическое, структурное и объектно-ориентированное программирование.



ВИДЫ: 1) Язык программирования низкого уровня-(Ассемблер) высокое быстродействие, но составлять программы неудобно(так как используется машинный код).

2) Язык программирования высокого уровня- язык программирования, средства которого допускают описание задачи в наглядном виде.

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

ТИПЫ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ: 1) процедурное-программы состоят из последовательности операторов. Основной оператор присваивание. (Ассемблер, С, Pascal)

2) Функциональное – основной ролью является выражение (скалярные константы, функции) 3) Логическое – используется в системах искусственного интеллекта.(Пролог) 4) Объектно-ориентированное – в составе языка лежит понятие объекта, сочетающего в себе данные и действия над ними.(С++)

Эволюция: Машинный код – Ассемблер – Си – Бейсик – Паскаль – Си++.

20.Синтаксис алгоритмического языка С/С++, запись выражений, пример консольного приложения.

Синтаксис алгоритмического языка — совокупность правил, позволяющая:

1. формально проверить текст программы (выделив множество синтаксически правильных программ);

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

ü Пример консольного приложения

Листинг программы на языке C++

#include<clx.h>

#include<iostream.h> // подсоединение к программе раздела библиотеки с функциями// по потокового ввода/вывода данных

voidmain()

{ // начало функции main()

int a, b, c, d; // объявление переменных a, b, c целого типа

cout<<"Введите значение сопротивления a и b:"; // вывод строки на экран

cin>>a>>b; // ввод значений a и b

 c=a*b; // умножение значений a и b и присвоение переменной с

 d=a+b; // присваивание переменной c значения суммы переменных a и b c=c/d;

cout<<"Сопротивление цепи с последующим соединением ="<<c; // вывод значения переменной c на экран c=a+b;

cout<<"Сопротивление цепи с параллельным соединением ="<<c; // вывод значения переменной a на экран cin>>a;

 

Результаты работы программы

Введите значения переменных: 4 7

Результат: 2 и 11

21. Операции языка С++ (арифметические, логические, битовые, >><< и т.д.), примеры использования.
арифметические:
+ - сложение
- - вычитание
* - умножение
/ - деление
% - остаток от деления
++ - инкремент
-- - декремент

сравнения:
> - больше
< - меньше
== - равно
>= - больше или равно
<= - меньше или равно
!= - не равно

логические:
&& - и
|| - или
! - не

битовые:
& - и
| - или
^ - исключающее или
« - левый сдвиг
» - правый сдвиг

22. Ввод-вывод данных в языке C++ осуществляется либо с помощью функций ввода-вывода в стили C, либо с использованием библиотеки классовC++. Описание объектов для управления вводом-выводом содержится в файле iostream.h. При подключении этого файла с помощью директивы #include<iostream.h>в программе автоматически создаются виртуальные каналы связи cinдля ввода с клавиатуры и cout для вывода на экран, а также операции помещения в поток << и чтения из потока >>.

23.Условные конструкции в С и С++, возможные варианты по использованию. Примеры.

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

В самом простом случае синтаксис данного оператора if следующий:

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

<оператор>

Два условных оператора можно заменить одним, используя конструкцию

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

<оператор1>

else

<оператор2>

 

Программа определения знака введенного числа.

#include
intmain()
{
float x;
printf(“Введите число: ”);
scanf(“%f”,&x);
if(x < 0)
printf(“Введенное число %f является отрицательным.\n”, x);
else
printf(“Введенное число %f является неотрицательным.\n”, x);
return 0;
}

В случаях, когда при выполнении какого-либо условия необходимо записать более одного оператора

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

{

<список операторов>

}

else

{

<список операторов>

}

После ключевого слова else формально можно поставить еще один оператор условия if.

Во многих случаях оказывается более удобным применять оператор switch языка С++. Синтаксис данного оператора следующий:

switch(переменная)

{

case константа1:

<операторы>

case константа2:

<операторы>

...

default:

<операторы>

}

Листинг. Пример использования оператора switch.

#include
intmain()
{
int x;
printf(“Введите число: ”);
scanf(“%d”,&x);
switch(x)
{
case 1 : printf(“Введено число 1\n”);break;
case 2 : printf(“Введено число 2\n”); break;
default : printf(“Введено другое число\n”);
}
charch;
printf(“Введите символ: ”);
scanf(“%с”,&сh);
switch(ch)
{
case ‘a’ : printf(“Введен символ а\n”); break;
case ‘b’ :printf(“Введен символ b\n”); break;
default : printf(“Введен другой символ\n”);
}
return 0;
}

Данный пример демонстрирует два разных варианта использования оператора switch. В первом случае выполняется анализ введенной цифры, во втором – анализ введенного символа.

24. Конструкции циклов в С и С++, возможности и применение на примерах.

циклы:
for (счетчик; условие; инкремент)
{
действие
}

while (условие)
{
действия
}

do
{
действия
}
while(условие)

первый цикл имеет известное нам кол-во итераций цикла
второй выполняется пока действует условие
третий цикл выполнится ОБЯЗАТЕЛЬНО один раз, в дальнейшем будет исполнятся пока действует условие

25.Массивы данных в С и С++. Обращение к элементам массива. Многомерные массивы. Примеры.

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

Массив (тип array) может быть создан языковой конструкцией array().

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

Вот пример уже из языка Си:

int i[2][4] = {{1,2,3,4}, {5,6,7,8}};

Т.е. тут мы создаем двумерный массив размером 2х4. Т.е. 2 строчки по 4 элемента каждая.

26.Построение подпрограмм для решения вычислительных задач. Примеры С++.

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

При составлении подпрограмм с параметрами надо соблюдать следующие правила:

1) каждая подпрограмма имеет свое имя и список формальных параметров;

2) процедура из основной программы вызывается командой вызова, которая по форме ничем не отличается от вызова команды исполнителя. Результат присваивается одной или нескольким переменным, которые находятся в списке формальных параметров. Но результатом могут быть, конечно, не только значения переменных, но какое либо действие, выполненное ЭВМ.

Примеры С++ (программа нахождения наибольшего общего делителя)

// программаНОД #include <iostream.h> #include <math.h>       void Nod(int m, int n, int&k);                       void main() {                  int a, b, c, d, g, e, f;                  cout<< "Введите числители и знаменатели дробей:";                  cin>> a >> b >> c >> d;                  e = a * d - b * c;                  f = b * d;                  if (e==0)                                 cout<< "Ответ: " << e;                  else                  {                                 Nod(fabs(e),f,g);                                 e = e / g;                                 f = f / g;                                 cout<< "Ответ: " << e << "/" << f;                  } } void Nod(int m, int n, int&k) {                  while (m != n)                                 if (m > n) m -= n; else n -= m;                  k = m;                                                               } Подпрограмма. 1. Ввести натуральные числа M, N. 2. Если M=N, перейти к п. 5, иначе к следующему пункту. 3. Если M>N, то M:=M-N, иначе N:=N-M. 4. Перейти к п. 2. 5. Передать значение M в основную программу. 6. Конец подпрограммы. Основная программа. 1. Ввести значения A, B, C, D. 2. E:=A*D - B*C. 3. F:= B*D. 4. Если E=0, вывести значение E и перейти к п. 9, иначе перейти к следующему пункту. 5. M:=|E|, N:=F, перейти к подпрограмме вычисления НОД. 6. G := M. 7. E и F нацело разделить на G. 8. Вывести значения E и F на печать. 9. Конец программы. Для понимания J

28. Построение структур и объединений на С++. Примеры.

Структура - это набор данных, где данные могут быть разного типа.

Структура определяется с помощью ключевого слово stuct. Рассмотрим следующее определение структуры:

structTime {
inthour; // часы
intminute; // минуты
intsecond; // секунды
};

Особый тип структур-объединение. Используется ключевое слово union.

Объединения С++ очень похожи на структуры, за исключением того, как С++ хранит их в памяти; кроме того, объединение может хранить значение только для одного элемента в каждый момент времени.
Объединение представляет собой структуру данных, подобную структуре С++, и состоит из частей, называемых элементами.
Объединение определяет шаблон, с помощью которого программы далее объявляют переменные.
Для обращения к определенному элементу объединения ваши программы используют оператор С++ точку.
Чтобы изменить значения элемента объединения внутри функции, ваша программа должна передать переменную объединения в функцию с помощью адреса.
Анонимное объединение представляет собой объединение, у которого нет имени (тэга)

29. Создание объектно-ориентированных консольных приложений на С++. Введение в классы.

Консольный ввод и вывод в С++

Хотя в С++ по-прежнему доступны функции ввода - вывода printf() и scanf() из языка С, С++ обеспечивает иной, лучший способ выполнения этих операций. ВС++ ввод/вывод выполняется с использованием переопределенных операций << и>>, а не с помощью функций. Сохраняя свои первоначальные значение (левый и правый сдвиг), операции << и >> выполняют еще ввод и вывод.

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

cout<< выражение;

Таким способом можно вывести любой базовый тип данных С++.

Аналогичным образом можно осуществлять и ввод (вместо scanf()).

Например,

inti;

cin>>i;

Обратите внимание, что переменной i не должен предшествовать &. В общем случае, для ввода с клавиатуры следует использовать следующую форму >>:

cin>> выражение;

Для использования операций ввода/вывода в С++, в программу необходимо включить заголовочный файл iostream.h.

· Введение в классы

Класс – это механизм для создания новых типов.

Синтаксис описания класса похож на синтаксис описания структуры.

class имя_класса

{

закрытые элементы – члены класса

public:

открытые элементы – члены класса

};

На что здесь следует обратить внимание?

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

-Члены класса – это переменные состояния и методы этого класса, иными словами членами класса могут быть как переменные, так и функции. Функции и переменные, объявленные внутри объявления класса, становятся членами этого класса. Функции-члены класса будем называть методами этого класса.

-По умолчанию, все функции и переменные, объявленные в классе, становятся закрытыми (private) . Т.е. они доступны только из других членов этого класса. Для объявления открытых членов класса используется ключевое слово public. Все функции–методы и переменные, объявленные после словаpublic, доступны и для других членов класса, и для любой другой части программы, в которой содержится класс. В структурах по умолчанию все члены являются отрытыми. Так что, приведенные ниже примеры аналогичны.

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

30.Конструкторы и деструкторы в классах. Создание и использование. Примеры. При создании объектов одной из наиболее широко используемых операций которую вы будете выполнять в ваших программах, является инициализация элементов данных объекта. Единственным способом, с помощью которого вы можете обратиться к частным элементам данных, является использование функций класса. Чтобы упростить процесс инициализации элементов данных класса, C++ использует специальную функцию, называемую конструктором, которая запускается для каждого создаваемого вами объекта. Подобным образом C++ обеспечивает функцию, называемую деструктором, которая запускается при уничтожении объекта.Конструктор представляет собой метод класса, который облегчает вашим программам инициализацию элементов данных класса. ØКонструктор имеет такое же имя, как и класс.ØКонструктор не имеет возвращаемого значения.
ØКаждый раз, когда ваша программа создает переменную класса, C++ вызывает конструктор класса, если конструктор существует.ØМногие объекты могут распределять память для хранения информации; когда вы уничтожаете такой объект, C++ будет вызывать специальный деструктор, который может освобождать эту память, очищая ее после объекта.ØДеструктор имеет такое же имя, как и класс, за исключением того, что вы должны предварять его имя символом тильды (~).ØДеструктор не имеет возвращаемого значения.Конструктор можно представить как функцию, которая помогает вам строить (конструировать) объект. Подобно этому, деструктор представляет собой функцию, которая помогает вам уничтожать объект. Деструктор обычно используется, если при уничтожении объекта нужно освободить память, которую занимал объект.
Конструктор представляет собой специальную функцию, которую C++ автоматически вызывает каждый раз при создании объекта. Обычное назначение конструктора заключается в инициализации элементов данных объекта.
ля выполнения действий, обратных совершаемым конструкторами, т.е., например, освобождение заказанной памяти, закрытие открытых конструктором файлов и т.п., в С++ введен механизм деструкторов.
Деструктор класса вызывается автоматически для каждого из объектов класса при потере его из области видимости в программе. Это происходит при выходе программы из блока, в котором определен объект класса


Дата добавления: 2018-02-18; просмотров: 578; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!