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



ЗНАЕТЕ ЛИ ВЫ?

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

Поиск

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

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

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

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

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

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

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

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

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

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

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

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

#include <clx.h>

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

void main()

{ // начало функции 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
int main()
{
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
int main()
{
int x;
printf(“Введите число: ”);
scanf(“%d”,&x);
switch(x)
{
case 1: printf(“Введено число 1\n”);break;
case 2: printf(“Введено число 2\n”); break;
default: printf(“Введено другое число\n”);
}
char ch;
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. Рассмотрим следующее определение структуры:

struct Time {
int hour; // часы
int minute; // минуты
int second; // секунды
};

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

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

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

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

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

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

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

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

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

Например,

int i;

cin >> i;

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

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

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

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

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

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

class имя_класса

{

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

public:

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

};

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

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

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

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

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

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

Инкапсуляция и полиморфизм. Примеры использования.

Инкапсуляция

Класс представляет собой единство трех сущностей - полей, мето­дов и свойств. Объединение этих сущностей в единое целое и назы­вается инкапсуляцией. Инкапсуляция позволяет во многом изолиро­вать класс от остальных частей программы, сделать его «самодостаточным» для решения конкретной задачи. В результате класс всегда несет в себе некоторую функциональность.

Полиморфизм - это свойство классов решать схожие по смыслу проблемы разными способами. В рамках Object Pascal поведенче­ские свойства класса определяются набором входящих в него мето­дов. Изменяя алгоритм того или иного метода в потомках класса, программист может придавать этим потомкам отсутствующие у ро­дителя специфические свойства. Для изменения метода необходимо перекрыть его в потомке, т.е. объявить в потомке одноименный ме­тод и реализовать в нем нужные действия. В результате в объекте-родителе и объекте-потомке будут действовать два одноименных метода, имеющие разную алгоритмическую основу и, следовательно, придающие объектам разные свойства. Это и называется полимор­физмом объектов.

32. Область видимости объектов в классах (private, public, protected). Примеры на С++.

Описание предусматривает три секции. Компоненты класса, объявленные в секции private, называются внутренними. Они доступны только компонентным функциям того же класса и функциям, объявленным дружественными (см. раздел 4.3) описываемому классу. Компоненты класса, объявленные в секции protected, называются защищенными. Они доступны компонентным функциям не только данного класса, но и его потомков. При отсутствии наследования – интерпретируются как внутренние. Компоненты класса, объявленные в секции public, называются общими. Они доступны за пределами класса в любом месте программы. Именно в этой секции осуществляется объявление полей и методов интерфейсной части класса. Если при описании класса тип доступа к компонентам не указан, то по умолчанию принимается тип private.

сlass <Имя класса>

{

private: <Внутренние (недоступные) компоненты класса>

protected: <Защищенные компоненты класса>

public: <Общие (доступные) компоненты класса>

};

33. Наследование классов в консольном приложении. Класс-потомок наследует все возможности родительского класса - все поля и все методы, открытую и закрытую часть класса. Правда, не ко всем полям и методам класса возможен прямой доступ потомка. Поля и методы родительского класса, снабженные атрибутом private, хотя и наследуются, но по-прежнему остаются закрытыми, и методы, создаваемые потомком, не могут к ним обращаться напрямую, а только через методы, наследованные от родителя. Единственное, что не наследует потомок - это конструкторы родительского класса. Методы класса могут быть объявлены как абстрактные. Это означает, что в этом классе нет реализации этих методов. Абстрактные методы пишутся с модификатором abstract. Класс, в котором есть хотя бы один абстрактный метод, называется абстрактным (а таком классе могу быть и обычные методы). Нельзя создавать экземпляры абстрактного класса - такой класс может использоваться только в качестве базового класса для других классов. Для потомка такого класса есть две возможности - или он реализует все абстрактные методы базового класса (и в этом случае для такого класса-потомка мы сможем создавать его экземпляры), или он реализует не все абстрактные методы базового класса (в этом случае он является тоже абстрактным классом и единственная возможность его использования - это производить от него классы-потомки). Следует отметить, что в C# класс не может быть объявлен производным от нескольких классов. То есть отсутствует полное множественное наследование классов. Чтобы частично сгладить этот пробел, допускается множественное наследование интерфейсов. Обеспечить возможность классу иметь несколько родителей - один полноценный класс, а остальные в виде интерфейсов, - в этом и состоит основное назначение интерфейсов.

34.Текстовые редакторы. Основные требования, предъявляемые к ним.

Текстовый редактор — самостоятельная компьютерная программа или компонент программного комплекса, предназначенная для создания и изменения текстовых данных вообще и текстовых файлов в частности.

На данный момент наиболее распространенные текстовые редакторы: Microsoft Word и LibreOffice Writer.

Функциональные возможности: 1) Создание документа

2) Специальные средства ввода и редактирования текста (ввод специальных символов, форматирование, настройка шрифта, настройка метода выравнивания, работа с формулами, таблицами, с графическими объектами. 3)Сохранение документа. 4) Печать.



Поделиться:


Последнее изменение этой страницы: 2021-05-12; просмотров: 68; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.235.195 (0.008 с.)