Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Завдання на лабораторну роботу

Приклади програм

Приклад 1. Даны два комплексных числа. Найти их произведение.

Розв’язок.

#include <iostream>
#include <conio.h>

using namespace std;
int main()
{
struct complex // Определение структурного типа
{
float Re;
float Im;
};
complex cplx1, cplx2, mult; // Определение структур
cout << "\nВведи действительную и мнимую части 1 числа\n";
cin >> cplx1.Re >> cplx1.Im; // Операция "точка"
cout << "\nВведи действительную и мнимую части 2 числа\n";
cin >> cplx2.Re >> cplx2.Im;
mult.Re = cplx1.Re * cplx2.Re - cplx1.Im * cplx2.Im;
mult.Im = cplx1.Re * cplx2.Im + cplx1.Im * cplx2.Re;
cout << "Действительная часть: " << mult.Re <<

" мнимая часть: " << mult.Re,mult.Im;
cout << "\nPress any key";
_getch();
return 0;
}

Приклад 2. Дан массив комплексных чисел. Найти сумму его элементов.

Розв’язок.

#include <iostream>
#include <conio.h>

using namespace std;
int main()
{
struct complex // Определение структурного типа
{
float Re;
float Im;
} arr[] = {1, 2, 3, -4, -5, -6, -7, -8}; // Определение
// массива
complex sum = {0, 0};
complex *point = &arr[0]; // Определение указателя
// на структуру с инициализацией адресом нулевого
// элемента массива
int k;
k = sizeof(arr) / sizeof(arr[0]); // Вычисление количества
// элементов массива: объем памяти, выделенной под
// массив, делится на размер одного (нулевого) элемента
for (int i = 0; i < k; i++)
{
sum.Re += point->Re; // Использование операций "точка"
sum.Im += point->Im; // и "стрелка"
point++; // Изменение указателя (переход к
// элементу массива
}
cout << "Сумма: real = " << sum.Re <<
"\timag = " << sum.Im;
cout << "\nPress any key";
_getch();
return 0;
}

Приклад 3. Даны массы и координаты материальных точек. Найти координаты центра масс.

Розв’язок.

#include <iostream>
#include <conio.h>

using namespace std;

struct particle // Определение структурного типа с элементами:
{
double mass; // масса точки
double coord[3]; // и массив координат
};

int main()
{
particle mass_point[] = { // Определение массива структур
20, {2, 4, 6}, // с инициализацией
40, {6, -2,8},
10, {1, 3, 2}
};
int n;
particle center = { // Определение структуры с
0, {0, 0, 0} // инициализацией
};
n = sizeof(mass_point) / sizeof(mass_point[0]); // Коли-
// чество элементов массива
for (int i = 0; i < n; i++)
{
center.mass += mass_point[i].mass;
for (int k = 0; k < 3; k++)
center.coord[k] += mass_point[i].coord[k] *
mass_point[i].mass;
}
cout << "\nКоординаты центра масс:";
for (int i = 0; i < 3; i++)
{
center.coord[i] /= center.mass;
cout << "\nКоордината " << i + 1 << ": " <<
center.coord[i];
}
cout << "\nPress any key";
_getch();
return 0;
}

Завдання на лабораторну роботу

За час, відведений для виконання лабораторної роботи (2 академічні години), студент повинен:

1. Розробити алгоритм розв’язання задачі, запропонованої для програ­мування.

2. Здійснити програмну реалізацію розробленого алгоритму.

3. Здійснити налаштування програми, виправивши синтаксичні та ло­гічні помилки.

4. Підібрати тестові дані для перевірки програми, включаючи ви­нят­кові випадки.

5. Оформити звіт до лабораторної роботи.

6. Відповісти на контрольні запитання.

7. Здати викладачу працездатну програму з демонстрацією її робо­ти на декількох варіантах вихідних даних.

4. Варіанти задач

1. Дано натуральне число n і послідовності дійсних чисел a1, a2, …, an; x1, x2, …, xn; y1, y2, …, yn. Ці дані визначають на координатній площині n квадратів зі сторонами, паралельними координатним осям: ai – сторо­на квадрата, (xi, yi) – координати центра i‑го квадрата, i = 1, 2, …, n. Чи існують на координатній площині точки, що належать усім квадратам? Якщо так, то зазначити координати однієї з них.

2. Дано натуральне число n і множину з n точок на пло­щині, що задаються парами дійсних чисел (xi, yi), i = 1, 2, …, n, а також пару дійсних чисел (u, v), які визначають координати додаткової точки. Знайти номер точки множини, що є:

а) найближчою до точки (u, v);

б) найвіддаленішою від точки (u, v).

3. Множина точок задається аналогічно тому, як вона задана в задачі 2 Знайти точку цієї множини, для якої:

а) сума відстаней до інших точок мно­жини мінімальна;

б) сума відстаней до інших точок мно­жини максимальна;

в) сума відстаней до центра мно­жини мінімальна;

г) сума відстаней до центра мно­жини максимальна.

4. Множина точок задається аналогічно тому, як вона задана в задачі 2 Знайти дві різні точки цієї множини, відстань між якими:

а) мінімальна;

б) максимальна.

5. Дано дві множини точок A і B, задані аналогічно тому, як це описано в задачі 2. Множина A містить m точок, а множина B – n точок, де m і n – задані натуральні числа. Знайти відстань між множинами A і B. Відстань між двома множинами точок визначати як:

а) відстань між найближчими одна до одної точками цих множин;

б) відстань між найвіддаленішими точками цих множин;

в) відстань між центрами цих множин.

У двох перших випадках знайти також номери і координати точок, за якими визначалася відстань між множинами.

6. Дано масив з 10 дат (число, місяць, рік). Зазначити всі літні дати, а також найбільш ранню дату.

7. Маємо каталог на n книг і журнальних статей (n ≤ 100). Вивести інформацію про публікації, видані після 1990 р. (окремо книги і статті).

Дано інформацію про оцінки, отримані студентами акаде­міч­ної групи під час сесії. Інформація подається у такому вигляді: прізвище студента (рядок не більше 30 символів), форма навчання (бюд­жет­на або контрактна – одна з латинських літер B або C), 5 оцінок (цілі числа 2, 3, 4, 5 або 0, причому 0 відповідає випадку, коли студент не складав відповідний іспит). Має бути також передбачена можливість наявності інформації про середній бал за результатами сесії (дійсне число), а також про розмір стипендії (дійсне число). За умови, що у групі навчається не більше 40 студентів, описати у програмі масив для зберігання згаданої інформації, розрахувати середній бал кожного зі студентів, які склали всі іспити з оцінками, вищими за 2, і виконати нарахування стипендії усім студентам бюд­жетної форми навчання із середнім балом 4.0 та більше. Базова сти­пендія становить 600 грн. Студен­там, які отримали максимальні бали з усіх іспитів, нараховується стипен­дія, на 25 % вища за базову стипендію. Вивести інформацію про студентів, що мають академічні заборгованості, а також інформацію про нарахування стипендій.

5. Контрольні запитання

Список літератури

1. Страуструп, Б. Язык программирования Си++: Второе издание / Б. Страуструп. – К.: ДиаСофт, 1993. – Ч. 1. – 264 с.; Ч. 2. – 296 с.

2. Керниган, Б. Язык программирования Си / Б. Керниган, Д. Ритчи. – М.: Финансы и статистика, 1992. – 272 с.

3. Либерти, Джесс. Освой самостоятельно С++ за 21 день: учеб. пособ. / Джесс Либерти. – М.: Вильямс, 2001. – 816 с.

4. Подбельский, В. В. Программирование на языке Си / В. В. Подбельский, С. С. Фомин. – М.: Финансы и статистика, 1999. – 600 с.

5. Подбельский, В. В. Язык Си++ / В. В. Подбельский. – М.: Финансы и ста­тистика, 1999. – 560 с.

6. Савитч, Уолтер. Язык C++. Курс объектно-ориентиро­ван­ного програм­­мирования / Уолтер Савитч. – М.: Вильямс, 2001. – 704 с.


Навчальне видання

 

Методичні вказівки

до лабораторної роботи
«Структури в програмах мовою C++»

з курсу «Програмування» для студентів напряму 6.040302 – Інформатика
і курсу «Програмування та алгоритмічні мови» для студентів напряму
6.040303 – Системний аналіз

 

Укладачі: БЕЗМЕНОВ Микола Іванович,

БЕЗМЕНОВА Ольга Миколаївна

 

Відповідальний за випуск О. С. Куценко

Роботу до видання рекомендував О. В. Горелий

 

 

За авторською редакцією

 

План 2013 р., поз. 10/40–13

 

 

Підписано до друку __.__.2013 р. Формат 60´84 1/16. Папір офсетний.

Друк – ризографія. Гарнітура Таймс. Ум. друк. арк. _______.

Обл.-вид. арк. 0,8. Тираж 50 прим. Зам. №___. Ціна договірна.

________________________________________________________________

Видавничий центр НТУ «ХПІ».

Свідоцтво про державну реєстрацію ДК № 116 від 10.07.2000 р.

61002, Харків, вул. Фрунзе, 21.

________________________________________________________________

Друкарня НТУ «ХПІ»

61002, Харків, вул. Фрунзе, 21.



<== предыдущая лекция | следующая лекция ==>
Материалы данного раздела наглядно отражают конкретную деятельность по проекту. | Порядок проведения конкурса. Цели и задачи конкурса
Поделиться с друзьями:


Дата добавления: 2017-03-18; Мы поможем в написании ваших работ!; просмотров: 186 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

В моем словаре нет слова «невозможно». © Наполеон Бонапарт
==> читать все изречения...

2172 - | 2117 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.