Тема 6.8. Структуры и объединения 


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



ЗНАЕТЕ ЛИ ВЫ?

Тема 6.8. Структуры и объединения



Студент должен:

знать:

¨ понятия: структура, объединение, конструктор, деструктор;

¨ способы описания структур и т.д.;

¨ сферы применения

уметь:

¨ описывать и применять структуры, объединения;

¨ описывать и применять конструкторы и деструкторы

 

Структура как тип данных. Объединение разнотипных данных. Особенности применения структур и объединений и их различия. Конструкторы и деструкторы.

Вопросы и задания для самопроверки:

  1. С помощью каких служебных слов описываются структуры и объединения?
  2. Какой тип в Pascal ближе всего по описанию к типу “структура”?
  3. Опишите структуру, содержащую следующие данные: фамилия, группа, три оценки.
  4. В чём заключаются различия в использовании структур и объединений?
  5. Для чего предназначены конструкторы и деструкторы?
  6. Создайте объединение, конструктор и деструктор.

Рекомендуемая литература: 1.1, 1.2, 2.4, 2.6

 

Тема 6.9. Классы в С++

Студент должен:

знать:

¨ понятия: класс, наследование, потомок, предок;

¨ основные свойства классов;

¨ описание классов

уметь:

¨ применять классы;

¨ использовать принципы наследования;

¨ создавать классы

 

Понятие класса. Наследование, потомок, предок. Основные свойства классов. описание и применение классов в С++. Принципы наследования.

Вопросы и задания для самопроверки:

  1. Охарактеризуйте назначение класса, как одного из основных понятий ООП.
  2. Поясните на конкретных примерах свойства классов.
  3. Создайте собственный класс с произвольным наполнением.
  4. Потомок наследует все свойства предка? Почему?

Рекомендуемая литература: 1.1, 1.2, 2.4, 2.6

 

Тема 6.10. Графические операторы в С++

Студент должен:

знать:

¨ графические функции;

¨ особенности использования графики;

уметь:

¨ инициализировать графику в С++;

¨ применять графические функции;

¨ осуществлять движение графических объектов

Графическая библиотека graphics.h. Инициализация графики. Графические функции. Организация движения графических объектов.

Вопросы и задания для самопроверки:

  1. С помощью какой функции происходит инициализация графики? Охарактеризуйте параметры этой функции.
  2. Составьте таблицу графических функций с указанием типа параметров.
  3. Напишите программу для организации движения закрашенного прямоугольника по диагонали.

Рекомендуемая литература: 1.1, 1.2, 2.4, 2.6

 

Тема 6.11. Стадии и команды процессорной обработки

Студент должен:

знать:

¨ стадии процессорной обработки;

¨ команды процессорной обработки;

¨ директивы замены, подстановки

уметь:

¨ выделять стадии процессорной обработки;

¨ применять команды замены и подстановки

 

Стадии и команды процессорной обработки. Директивы замены и подстановки. Особенности работы компилятора. Представление директив в программном коде после обработки компилятора.

 

Вопросы и задания для самопроверки:

  1. Дайте определение директивы.
  2. Каким образом преобразуется программа после обработки компилятором?
  3. Охарактеризуйте операцию замены.
  4. Как работает препроцессор с директивой #include?

Рекомендуемая литература: 1.1, 1.2, 2.4, 2.6

 

Классная контрольная работа по темам “Массивы в Pascal” и “Подпрограммы в Pascal” (2 часа)

Примерные задания на контрольную работу:

  1. Составить алгоритм в виде блок-схемы и программу для определения факториала некоторого числа. Использовать подпрограмму функцию или процедуру.
  2. Составить алгоритм в виде блок-схемы и программу для вычисления суммы всех отрицательных элементов массива X[n, m].
  3. Составить алгоритм в виде блок-схемы и программу для подсчёта количества положительных элементов массива X[10, 5].

ДОМАШНЯЯ КОНТРОЛЬНАЯ РАБОТА

 

ТРЕБОВАНИЯ К ВЫПОЛНЕНИЮ:

1. Оформить контрольную работу в отдельной тетради

2. Указать вариант, который определяется по последней цифре в шифре

3. Должны присутствовать тексты задач

4. К каждой задаче необходимо составить алгоритм решения в виде блок-схемы

5. Привести листинги программ

6. Язык программной реализации – С++

7. К контрольной работе приложить дискету с действующими программами

8. На проверку принимаются только аккуратно оформленные контрольные работы

9. Список литературы в соответствие со стандартом

 

I ВАРИАНТ

1. Вычислить все значения функции

y = ,

если х принадлежит интервалу [-4; 5] и изменяется с шагом 0.2

 

2. Найти максимальный и минимальный элементы массива S(n) и поменять их местами

 

3. В матрице N для каждой строки найти число элементов кратных 5

 

4. Определить разность факториалов двух чисел a и b. Факториал вычислять через функцию

 

 

II ВАРИАНТ

1. Вычислить все значения функции

p = ,

если х принадлежит интервалу [-8; 10] и изменяется с шагом 0.15

 

2. Найти произведение отрицательных элементов массива А(m)

 

3. Дана матрица. Определить номера строк наибольшего и наименьшего элементов

 

4. Определить сумму факториалов двух чисел a и b. Факториал вычислять через функцию

 

III ВАРИАНТ

1. Вычислить все значения функции

z = ,

если х принадлежит интервалу (-1.57; 1.57) и изменяется с шагом 0.1

2. Вывести на экран все положительные элементы массива X(n), номера которых кратны 3

 

3. Записать и подсчитать количество отрицательных элементов в матрице и вместо них записать нули

 

4. Определить произведение факториалов двух чисел a и b. Факториал вычислять в функции

 

IV ВАРИАНТ

1. Вычислить все значения функции

v = ,

если х принадлежит интервалу (0; 3.14) и изменяется с шагом 0.25

2. Вычислить среднее геометрическое значение элементов массива Y(20)

 

3. Найти сумму и количество ненулевых элементов, находящихся на главной диагонали матрицы F(m, m)

 

4. Определить факториалы двух чисел a и b. Факториал вычислять через функцию

 

 

V ВАРИАНТ

 

1. Вычислить все значения функции

v = ,

если х принадлежит интервалу (-2; 15] и изменяется с шагом 1.1

 

2. Найти произведение элементов массива С (n), имеющих нечётные номера

 

3. Определить максимальный по модулю элемент массива А(30) и его порядковый номер, если А(i)<-2

 

4. Вычислить z = (x1+y1)/(x2-y2), где х1 и х2 - корни уравнения 2х2-13х+20 = 0; y1 и y2- корни уравнения y2+8y+15=0. x1, x2, y1 и y2 вычислять через функцию

 

VI ВАРИАНТ

1. Вычислить все значения функции

v = ,

если х принадлежит интервалу [-4; 5] и изменяется с шагом 0.2; h изменяется от 0 с тем же шагом

 

2. Найти сумму и количество элементов массива Y(15), которые лежат в диапазоне от 5 до 34 включительно

 

3. Записать на месте отрицательных элементов матрицы D(4, 5) нули, а на месте положительных - единицы

 

4. Определить периметры трёх треугольников, заданных координатами вершин через генератор случайных чисел. Периметр вычислять с помощью функции

 

 

VII ВАРИАНТ

1. Вычислить функцию y = tg(x) / (x-2) на определённом интервале с определённым шагом. Учитывать ОДЗ

 

2. Найти номер максимального по модулю элемента массива Z(n) из диапазона от -50 до 3 включительно

 

3. Вычислить сумму отрицательных элементов двумерного массива T(8, 5), находящихся над главной диагональю

 

4. Определить площади двух треугольников, заданных длинами сторон (через клавиатуру), по формуле Герона. Полупериметр вычислять с помощью функции

 

 

VIII ВАРИАНТ

1. Найти корень уравнения x-1/(3+sin(3.6x)) = 0 на интервале [0; 0.85]. Шаг изменения х равен 0.05

 

2. Переписать отрицательные элементы массива S(12) в массив P

 

3. В двумерном массиве A(n, m) расположить под главной диагональю единицы

 

4. Определить корни уравнений y = ax2 + bx + c и z = a1x2 + b1x +c1. Использовать функцию

 

 

IX ВАРИАНТ

1. Найти корень уравнения ln(x)-x+1,8=0 на интервале [2; 3]. Шаг изменения х равен 0.03

 

2. Переписать номера нулевых элементов массива X(m) в массив T

 

3. Вычислить суммы элементов каждого столбца матрицы C(k, f)

 

4. Дано два массива Y(n) и X(m). С помощью функции найти количество отрицательных элементов в каждом массиве

 

 

X ВАРИАНТ

1. Найти s = 1 + cos(x) + cos(2x) +... + cos(nx), где х изменяется от 0 до 3 с шагом 0.2

 

2. Заменить все положительные элементы массива S(k) на отрицательные и наоборот

 

3. Вычислить произведения элементов каждого столбца матрицы Z(n, m)

 

4. Создать матрицу в виде таблицы умножения. Произведения вычислять через функцию

 

 

XI ВАРИАНТ

1. Найти y = sin(x) + sin(x/2) +... + sin(x/n), где х изменяется от 1 до 5 с шагом 0,5

 

2. Дан массив x(n). Определить количество отрицательных элементов в массиве. Заменить все отрицательные элементы в массиве на их количество

 

3. В матрице z(n, m) расположить по главной диагонали максимальные элементы из каждой строки

 

4. Определить наибольший из трёх факториалов от чисел a, b и c. Факториал вычислять через функцию

 


РЕКОМЕНДАЦИИ ПО РЕШЕНИЮ КОНТРОЛЬНОЙ РАБОТЫ

 

В качестве примера рассмотрим решение задач XI варианта. Все приведённые ниже рассуждения необязательно указывать в Вашей контрольной работе, они использованы только для лучшего понимания Вами хода решения. В соответствие с требованиями к оформлению контрольной работы сначала описано условие задачи, затем алгоритм решения в виде блок-схемы и листинг (текст) программы на языке С++.

 

Задача №1

Найти y = sin(x) + sin(x/2) +... + sin(x/n), где х изменяется от 1 до 5 с шагом 0,5

Решение:

Исходные данные: n – количество вычислений синусов; значение x, которое изменяется от 1 до 5; шаг изменения равный 0,5. Выходные данные: y – сумма синусов от x. Поскольку x изменяется от 1 до 5 с шагом 0,5, то n будет равнять (5-1)/0,5+1=9, т.е. начальное значение минус конечное, разделить на шаг и прибавить единицу, т.к. необходимо учитывать ещё и начальное значение. Лучше всего для вычисления суммы синусов использовать параметрический цикл по параметру i от 1 до n c шагом единица. Конечное значение y определяется последовательным накоплением суммы, что означает постепенное увеличение y с помощью формулы y = y + sin(x/i). Для y сделаем вывод с комментариями cout<<"y="<<y;. На экране получим число 5.443581.

В самом начале программы подключаются необходимые для работы библиотеки: iostream.h, conio.h, math.h.

Комментарии в листинге программы указаны в скобках /* */ или после двух обратных слешей “//”. Алгоритм решения представлен на рис.1.

Алгоритм: Рис.1. Алгоритм к первой задаче Листинг программы:   #include<iostream.h> /* подключение стандартной библиотеки ввода-вывода */ #include<math.h> /* подключение библиотеки математических функций */ #include<conio.h> /* подключение библиотеки по работе с экраном */ main() // главная функция { clrscr(); // очистка экрана (библиотека conio.h) double y=0,x=1; /* описание вещественных переменных с инициализацией */ int i,n=9; /* описание целочисленных переменных с инициализацией */ for(i=1;i<=n;i++) // параметрический цикл { y=y+sin(x/i); // начало цикла и вычисление y x=x+0.5;} // увеличение x и конец цикла cout<<"y="<<y; // вывод на экран y getch(); /* функция, которая возвращает значение нажатой клавиши */ } // завершение программы

Задача №2

Дан массив x(n). Определить количество отрицательных элементов в массиве. Заменить все отрицательные элементы в массиве на их количество

Решение:

Исходные данные: массив x, состоящий из положительных и отрицательных целых чисел; размерность этого массива n, но т.к. заранее неизвестно значение n, то описывать будем массив на 50 элементов. Выходные данные: k – количество отрицательных элементов в массиве x(n); массив с изменёнными данными. Для задания массива будем использовать параметрический цикл по i, где i – это номер элемента массива. В цикле через генератор случайных чисел присваиваем каждому элементу массива какое-либо значение, например, в диапазоне от -20 до +20. Осуществить это можно при помощи следующей записи

x[i]:=random(41)-20;

random(y) – генератор случайных чисел, который выбирает случайным образом число в диапазоне от 0 до y-1. В нашем примере от начальной и конечной границ отнимаем 20 и получаем необходимый диапазон. В этом же цикле выводим массив на экран и подсчитываем количество отрицательных элементов. Вывод элементов массива оператором cout<<x[i]<<'\t' означает, что после каждого элемента производится табуляция для разделения. Организуем другой цикл, в котором заменяем отрицательные элементы на их количество и выводим на экран.

В начале программы подключаются библиотеки: iostream.h – стандартная библиотека ввода/вывода, stdlib.h – библиотека для работы со случайными числами с помощью функций randomize() и random(), conio.h – функции очистки экрана и задержки выполнения программы.

 

Алгоритм: см. рис. 2.

Листинг программы:

#include<iostream.h> // подключение стандартной библиотеки ввода-вывода

#include<stdlib.h> //подключение библиотеки для работы с генератором случайных чисел

#include<conio.h> // подключение библиотеки по работе с экраном

main() // главная функция

{ clrscr();// очистка экрана (библиотека conio.h)

int i,n,x[50],k=0; // описание целочисленных переменных с инициализацией и массива

cout<<"введите размерность массива "; // вывод на экран сообщения

cin>>n; // ввод значения переменной n

randomize(); // функция, которая меняет набор случайных чисел

cout<<"исходный массив \n"; // вывод сообщения с переходом на новую строку (\n)

for(i=0;i<n;i++) // параметрический цикл

{ // начало цикла

x[i]=random(41)-20; // заполнение массива случайным образом

if (x[i]<0) k++; // условие для подсчёта количества отрицательных элементов

cout<<x[i]<<'\t'; // вывод элементов массива на экран с использованием табуляции

} // конец цикла

cout<<"\n количество отрицательных = "<<k; // переход на новую строку и вывод k

cout<<"\n\n\изменённый массив\n"; // вывод двух пустых строк и сообщения

for(i=0;i<n;i++) // параметрический цикл

{ // начало цикла

if (x[i]<0) x[i]=k; // замена элементов по условию

cout<<x[i]<<'\t'; // вывод элементов изменённого массива

} // конец цикла

getch();// функция, которая возвращает значение нажатой клавиши

} // завершение программы

 

Рис. 2. Блок-схема к задаче №2.


Задача №3

В матрице z(n, m) расположить по главной диагонали максимальные элементы из каждой строки

Решение:

Исходные данные: матрица z(n, m), т.е. двумерный массив; n и m –количество строк и столбцов (размерность массива). Выходные данные: изменённый массив, где по главной диагонали расположены максимальные элементы каждой строки. Двумерный массив зададим с помощью двух вложенных параметрических циклов: первый цикл по i будет определять строки, второй по j - столбцы. Сами элементы выбираются произвольным образом генератором случайных чисел random, randomize – служит для смены набора случайных чисел, т.е. при каждом новом запуске программы элементы в массиве меняются. Для того чтобы массив при выводе на экран был похож на матрицу после вывода элементов каждой строки cout<<z[i][j]<<’\t’ применим оператор cout<<’\n’, который осуществляет переход на новую строку. В следующих вложенных циклах определяем максимальный элемент в строке. Организуем цикл по строкам (параметр i); переменной max присваиваем нулевой элемент каждой строки, для того чтобы произвести сравнение. Организуем цикл по столбикам (параметр j); сравниваем max со всеми элементами i-й строки. Если найдётся элемент больший max, то max присваиваем этот элемент, а переменным imax и jmax – номера строки и столбца максимального элемента. Закрываем цикл по столбцам, производим переприсваивание, для этого на месте максимального элемента пишем элемент с главной диагонали и наоборот.

 

Алгоритм в виде блок-схемы: см. рис. 3.

 

Листинг программы:

#include<iostream.h> // стандартная библиотека ввода/вывода

#include<stdlib.h> // библиотека для использования генератора случайных чисел

#include<conio.h> // библиотека, в которой содержатся функции clrscr() и getch()

main() { // главная функция, начало программы

int z[50][50],i,j,max,imax,jmax,n,m; //описание целых переменных и массива

randomize(); // функция, которая меняет набор случайных чисел

clrscr(); // функция для очистки экрана

cout<<"введите размерность \n"; //вывод надписи на экран с переходом на новую строку

cin>>n>>m; // ввод значений переменных n и m

cout<<"\nисходная матрица:\n"; // вывод надписи на экран с переходом на новую строку

for (i=0;i<n;i++) // внешний параметрический цикл по строкам

{ // начало внешнего цикла

for (j=0;j<m;j++) // внутренний параметрический цикл по столбцам

{ // начало внутреннего цикла

z[i][j]=random(40); // заполнение матрицы случайными числами от 0 до 39

cout<<z[i][j]<<'\t'; // вывод элементов на экран с использованием табуляции

} // конец внутреннего цикла

cout<<'\n';} // переход на новую строку для вывода матрицы в общепринятом виде

//циклы для определения максимального в строке и перестановки элементов

for (i=0;i<n;i++) // цикл по строкам

{ max=z[i][0]; imax=i; jmax=0; /* предположим самый максимальный элемент строки находится в нулевом столбике каждой строки */

for (j=0;j<m;j++) // цикл по столбцам

if (z[i][j]>max) { // с помощью условия определяется максимальный элемент в каждой строке

max=z[i][j]; // присваивание максимального элемента

imax=i;jmax=j; } // определение индексов максимального элемента

z[imax][jmax]=z[i][i]; // максимальный элемент заменяется элементом с главной диагонали

z[i][i]=max;} // на главную диагональ записываем максимальный элемент из каждой строки

cout<<"\nизменённая матрица:\n"; // вывод текста на экран с переходом на новую строку

for (i=0;i<n;i++) // цикл по строкам для преобразованной матрицы

{ for (j=0;j<m;j++) // цикл по столбцам для преобразованной матрицы

cout<<z[i][j]<<'\t'; // вывод матрицы на экран

cout<<'\n'; // переход на новую строку для вывода матрицы в общепринятом виде

} // закрытие внешнего цикла по строкам

getch();} // функция, которая возвращает значение нажатой клавиши

Рис. 3. Алгоритм в виде блок-схемы к задаче №3


Задача №4

Определить наибольший из трёх факториалов от чисел a, b и c. Факториал вычислять через функцию

Решение:

Исходные данные: a, b, c – целые числа. Выходные данные: наибольший из факториалов от трёх чисел. По условию задачи факториал вычисляется через функцию (назовём её factorial). Функция на блок-схеме оформляется отдельно. Вызов подпрограммы на блок-схеме обозначается добавлением линий с обеих сторон блока вызова (рис. 4).

Дополнительные линии

а) если вызов осуществляется в выражении б) если вызов осуществляется при выводе

Рис. 4. Вызов подпрограммы в основной программе

 

Факториал от какого-либо x – это произведение всех чисел от единицы до x. Математически факториал запишется следующим образом: . Программно реализуется с помощью последовательного накопления произведения в параметрическом цикле: или, с использованием сокращённых операторов С++, , где i – параметр цикла, начальное значение f присваивается единице. Входной параметр функции x – число, от которого определяем факториал; функция возвращает значение переменной f, т.е. факториал некоторого числа x:

return f;

Параметры, описанные в заголовке подпрограммы, называют формальными. В данном случае присутствует только один формальный параметр - он же является входным - x. Фактическими являются параметры, которые передаются из основной программы при вызове подпрограммы. В нашей задаче функцию будем вызывать три раза, поскольку факториал необходимо вычислять для трёх чисел a, b и c. Следовательно, фактическими параметрами при каждом следующем вызове функции станут a, b и c, соответственно. Кроме этого все переменные можно разделить на локальные и глобальные. Локальные – доступны только в том блоке, где они описаны, например в подпрограмме. Глобальные переменные доступны как в подпрограмме, так и основной программе. Мы используем локальные параметры – i, f, т.к. данные переменные применяются только в функции. Остальные переменные будут глобальными. Для вычисления факториала используется тип long, который является целочисленным типом, но имеет больший диапазон значений, чем основной целочисленный тип - int.

 

Алгоритм в виде блок-схемы: см. рис. 5.

Листинг программы:

#include<iostream.h> // библиотека ввода/вывода

#include<conio.h> // библиотека работы с экраном

main() // главная функция

{long factorial(int x); // прототип пользовательской функции

int a,b,c; long fa,fb,fc,p; // описание переменных целого и длинного целого типов

clrscr(); // очистка экрана

cout<<”введите три числа \n”; cin>>a>>b>>c; // вывод сообщения и ввод значений переменных

fa=factorial(a); fb=factorial(b); fc=factorial(c); // вызов функции для вычисления факториала

cout<<"\n наибольшим является факториал "; // вывод сообщения

if (fa>=fb && fa>=fc) p=fa; //если факториал а – наибольший, то p присваивает его значение

if (fb>=fa && fb>=fc) p=fb; //если факториал b – наибольший, то p присваивает его значение

if (fc>=fa && fc>=fb) p=fc; //если факториал c – наибольший, то p присваивает его значение

cout<<p; // вывод на экран наибольшего факториала

getch(); } // задержка выполнения программы, завершение программы

long factorial(int x) // заголовок пользовательской функции

{ long i, f=1; // описание и инициализация локальных переменных

for (i=1; i<=x; i++) f*=i; // цикл для вычисления факториала, используется сокращённая запись

return f;} // функция возвращает значение переменной f

Рис. 5. Блок-схема к задаче №4


ПРИМЕРНЫЙ ПЕРЕЧЕНЬ ВОПРОСОВ К ЭКЗАМЕНУ

 

Алгоритмизация и Pascal

  1. Этапы решения задач с помощью ЭВМ
  2. Понятие ”алгоритм”, определите его свойства, способы представления
  3. Конструкции блок-схем как один из способов представления алгоритмов
  4. Сочетание различных структур блок-схем на примерах
  5. Трансляторы, их виды, назначение и отличия
  6. Лексические основы языка Паскаль: лексемы, алфавит
  7. Правила записи идентификаторов, примеры написания
  8. Структура программы на языке Паскаль, охарактеристика каждого раздела
  9. Целый тип данных – integer: описание, диапазон, основные операции
  10. Вещественный тип – real: описание, диапазон, основные операции
  11. Логический тип – boolean: описание, диапазон, основные операции
  12. Символьный тип - char: описание, диапазон, основные операции
  13. Расширения стандартных типов данных: описание, диапазон
  14. Использование и описание констант различных типов
  15. Правила описания и использования переменных различных типов
  16. Правила описания и использования пользовательских типов
  17. Перечислимый и интервальный типы: характеристика, описание, примеры использования
  18. Выражения. Операции (логические и арифметические). Операнды
  19. Условный оператор: общий вид записи, назначение, примеры использования
  20. Оператор выбора: общий вид записи, назначение, примеры использования
  21. Оператор перехода: общий вид записи, назначение, примеры использования. Описание меток
  22. Особенности применения различных видов цикла
  23. Цикл с предусловием: общий вид записи, блок-схема, принцип действия
  24. Цикл с постусловием: общий вид записи, блок-схема, принцип действия
  25. Параметрический цикл: общий вид записи, блок-схема, принцип действия
  26. Правила организации вложенных циклов. Привести примеры
  27. Подпрограммы-процедуры: описание, особенности применения
  28. Подпрограммы-функции: описание, особенности применения
  29. Назначение, область действия локальных и глобальных параметров
  30. Назначение, область действия фактических и формальных параметров
  31. Описание, ввод/вывод одномерных массивов
  32. Описание, ввод/вывод двумерных массивов
  33. Обработка массивов: поиск, сортировка, арифметические действия
  34. Строковый тип: описание, операции по обработке
  35. Множества: описание, включение/исключение элементов
  36. Логические и арифметические операций над множествами
  37. Комбинированный тип – запись: описание, назначение, доступ к полям
  38. Оператор with, как эффективный способ работы с полями записи
  39. Принципы и примеры организации массивов записей

40. Описание файловых переменных: типизированных, нетипизированных и текстовых. Различия в использовании

41. Функции и процедуры для работы с файлами

  1. Назначение, описание указателей
  2. Процедуры и функции для работы с динамической памятью
  3. Основные принципы модульного программирования
  4. Организация пользовательского модуля, его структура
  5. Назначение различных частей модуля
  6. Включение и использование пользовательского модуля в основной программе
  7. Обзор стандартных библиотечных модулей
  8. Процедуры и функции для работы с модулем Crt
  9. Процедуры и функции для работы с модулем Graph

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

52. Алгоритмы отделения корней в программировании: метод половинного деления, хорд, касательных

53. Алгортмы вычисления интегралов в программировании: метод правых и левых прямоугольников, трапеций, Симпсона

Язык программирования С++

54. Примерная структура программы на С++, назначение файла iostream.h

55. Лексические основы С++: алфивит, идентификаторы, константы, разделители

56. Описание, диапазон основных скалярных типов С++

57. Особенности описания переменных и типов в сравнении с Pascal

58. Осуществление преобразования типов: явное и неявное

59. Составление арифметических выражений, сокращённые записи

60. Составление логических выражений и правила их записи

61. Организация ввода/вывода, применение символьных констант

62. Общий вид и назначение условного оператора. Провести сравнение с Pascal

63. Общий вид, назначение и примеры использования оператора-переключателя

64. Оператор перехода: общий вид записи, метки, сравнение с Pascal

65. Циклические операторы: виды циклов, особенности применения

66. Организация вложенных циклов в С++

67. Прерывание программы или её автономной части: операторы break, continue

68. Принципы создания и применения пользовательских функций на конкретном примере

69. Параметры функций: виды, назначение, использование в программе. Функции, использующие параметры по умолчанию

70. Назначение и описание прототипов функций

71. Создание собственной библиотеки функций: этапы разработки, подключение, правила использования

72. Описание и ввод/вывод одномерных массивов в С++

73. Описание и ввод/вывод многомерных массивов в С++

74. Указатели в С++: процедуры и функции для работы с динамической памятью

75. Создание структур и объединений в С++

76. Классы в С++: назначение, создание, свойства

77. Охарактеризуйте стадии процессорной обработки

78. Команды процессорной обработки: включение файлов, директива замены

79. Процедуры и функции заголовочного файла conio.h, их описание и назначение

80. Графическая библиотека: файл “graphics.h”, процедура инициализации, примеры использования

81. Графические функции: описания, примеры использования

 

ПРИМЕРНЫЕ ПРАКТИЧЕСКИЕ ЗАДАНИЯ К ЭКЗАМЕНУ

  1. Составить математическую модель задачи
  2. Составить алгоритм решения
  3. Рассмотреть все этапы решения задач на конкретном примере
  4. Определить, правильно ли записаны идентификаторы
  5. Записать числа в определённом формате
  6. Описание различных типов данных (стандартных и пользовательских)
  7. Записать арифметические и логические выражения по правилам Паскаля
  8. Решение задач на применение операторов: условного, выбора и перехода
  9. Решение задач с использованием различных видов цикла
  10. Изменение в цикле нескольких параметров одновременно
  11. Составить программу с использованием подпрограмм-процедур
  12. Составить программу с использованием подпрограмм-функций
  13. Отсортировать массив
  14. Операции над элементами массива
  15. Ввод/вывод матриц
  16. Задание массива с клавиатуры и через генератор случайных чисел
  17. Обработка строк
  18. Создание и использование множеств
  19. Организация массивов записей
  20. Заполнение полей записи
  21. Создание и редактирование различных файлов (типизированных, нетипизированных и текстовых)
  22. Работа с указателями и динамической памятью
  23. Создание собственного модуля
  24. Работа с модулем CRT
  25. Работа с графическими функциями и процедурами
  26. Описание типов в С++
  27. Запись сокращённых операций над данными
  28. Использование операторов cin и cout
  29. Решение задач с условием
  30. Включение оператора-переключателя
  31. Решение задач с использованием простых и вложенных циклов на С++
  32. Организация досрочного выхода из цикла или блока
  33. Создание пользовательских функций
  34. Описание прототипов функций
  35. Задание и вывод массивов
  36. Обработка многомерных массивов
  37. Применение указателей для решения задач
  38. Включение текстов программ из других файлов
  39. Замены идентификаторов в программе
  40. Использование графических функций
  41. Реализация движения графических объектов

 


ПРИМЕРНЫЙ ПЕРЕЧЕНЬ ЛАБОРАТОРНО-ПРАКТИЧЕСКИХ ЗАНЯТИЙ

 

  1. Практическая работа №1. “Решение задач с использованием различных видов цикла. Организация вложенных циклов”
  2. Лабораторная работа №1. “Создание и обработка двумерных массивов”
  3. Лабораторная работа №2. “Процедуры и их применение ”
  4. Лабораторная работа №3. “Движение графических объектов”
  5. Лабораторная работа №4. “Программная реализация математических методов”
  6. Лабораторная работа №5. “Организация ввода/вывода в С++”
  7. Лабораторная работа № 6. “Организация вложенных циклов”
  8. Практическое занятие № 2. “Использование функций и прототипов функций”
  9. Практическое занятие № 3. “Создание одномерных и многомерных массивов”
  10. Лабораторная работа № 7. “Организация движения графических объектов”

 


СПИСОК ЛИТЕРАТУРЫ:

1. Основная:

1.1. Киммел П. Borland C++ 5. - СПб: BHV, 1997.

1.2. Подбельский В.В. Язык С++: Учеб. пособие. – 3-е изд., дораб. – М.: Финансы и статистика, 1998.

1.3. Попов В.Б. Turbo Pascal для школьников: Учеб. пособие. – 3-е доп. изд. – М.: Финансы и статистика, 1999

1.4. Сухарев М. Turbo Pascal 7.0, теория и практика программирования. – СПб: Наука и Техника, 2003.

1.5. Турбо Паскаль 7.0. – К.: Издательская группа BHV, 1996

1.6. Шаммас Н.К. Основы СИ++ и объектно-ориентированного программирования. – К.: Диалектика, - 1996.

2. Дополнительная:

2.1. Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов. – М.: Радио и связь, 1991.

2.2. Епанешников А.М., Епанешников В.А. Программирование в среде Turbo Pascal 7.0 – 3-е изд. – М.: Диалог-МИФИ, 1997.

2.3. Есипов А.С. Информатика. Учебник по базовому курсу общеобразовательных учебных заведений. Изд. 2-е, доп. и перераб. – СПб: Наука и Техника, 2001.

2.4. Ишкова Э.А. С++. Начала программирования – М.: ЗАО “Издательство БИНОМ”, 2000.

2.5. Марченко А.И., Марченко Л.А. Программирование в среде Turbo Pascal 7.0/ под ред. Тарасенок В.П. – 6-е изд., стереотипное, юбилейное. – К.: ВЕК+, 2000.

2.6. Сван Т. Освоение Borland C++ 5. - К.: Диалектика, 1996.

2.7. Фаронов В.В. Турбо-Паскаль 7.0. – М.: Нолидж, 1997.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-17; просмотров: 111; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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