ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 13.04.2024
Просмотров: 28
Скачиваний: 0
СОДЕРЖАНИЕ
Завдання на навчальну практику студента
2.2 Завдання № 2. Програмування алгоритмів, що розгалужуються.
2.3 Завдання № 3. Програмування циклічних алгоритмів.
2.4 Завдання № 4. Програмування з використанням одновимірних масивів.
2.5 Завдання № 5. Покажчики. Програмування з використанням динамічних двовимірних масивів.
2.6 Завдання № 6. Програмування з використанням рядків.
2.7 Завдання № 7. Програмування з використанням Структур.
2.8 Завдання № 8. Програмування з використанням функцій.
2.9 Завдання № 9. Програмування з використанням рекурсії.
{ if (mas[i]>mas[i + 1]){ s++; }}
cout << "Количество инверсий в массиве =" << s-1;
cout << endl; system("pause"); return 0; }
Рис. 4 Результат 4 завдання
2.5 Завдання № 5. Покажчики. Програмування з використанням динамічних двовимірних масивів.
У матриці розміром NXM переставити рядки так, щоб на головній діагоналі матриці були розташовані елементи, найбільші по абсолютній величині.
Код програми:
#include "stdafx.h"
#include <conio.h>
#include <locale>
#include "math.h"
#include "stdlib.h"
#include "iostream"
#include "time.h"
#include <iomanip>
using namespace std;
int main()
{srand((unsigned)time(NULL)); // заполнение без повторений
setlocale(0, "rus"); int i, j, n, m; int a[99][99];
cout << "Задайте розмер массива ," << endl << "Он должен быть квадратным" << endl;
cout << "Введите к-во строк " << endl; cin >> n;
cout << "Введите к-во столбцов " << endl; cin >> m;
if (n!=m){ cout << "Даная матрица не квадратная, перезапустите программу и введите розмеры заново!";
cout << endl; system("pause"); return 1; }
for (i = 0; i < n; i++){
for (j = 0; j < m; j++){
a[i][j] = rand() % 100 - 32; // рандомное заполнение масси }
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++)
cout << setw(5) << a[i][j] << setw(5); cout << endl; }
int max = 0; int b[99];
cout << "Максимальные ел. по строкам -> ";
for (i = 0; i < n; i++)
{ for (j = 0; j < m; j++){
for (j = 1; j < m; ++j)if (a[i][j] > a[i][max])
max = j; b[i] = a[i][max]; cout << a[i][max] << " "; }}
cout << endl; cout << "Получаем массив -> " << endl;
for (i = 0; i < n; i++)
{ for (j = 0; j < m; j++) if (i == j){
a[i][j] = b[i];}}
for (i = 0; i < n; i++)
{for (j = 0; j < m;j++)
cout << setw(5) << a[i][j] << setw(5); cout << endl;}
cout << endl; system("pause"); return 0;}
Рис. 5 Результат 5 завдання
2.6 Завдання № 6. Програмування з використанням рядків.
Даний рядок символів, що складається з довільного тексту, слова розділені пропусками. Вивести на екран порядковий номер слова, що накриває к-ю позицію (якщо на к-ю позицію потрапляє пропуск, то номер попереднього слова).
Код програми:
#include "stdafx.h"
#include "iostream"
#include "stdlib.h"
#include "conio.h"
#include "stdio.h"
#include "windows.h"
using namespace std;
int main()
{setlocale(0, "rus");
char st[100];int i, j, count=0;
cout << "Введите строку!" << endl;
gets_s(st);count = strlen(st);
cout << "Вы ввели: " << st << endl;
int s = 0;
if (strcmp("", st) < 0) s++;
for (int i = 0; (st[i] != '\0') && (i < strlen(st) - 1); i++)
if (isspace(st[i]) && isalnum(st[i + 1])) s++;
cout << endl << "Количество символов в строке -> " << count << endl;
cout << "Количество слов в строке ->" << s << endl;
int a[50], b[50]; int k, z, d, max;
d = strlen(st); st[d] = ' '; k = 0;
for (i = 0; i<d; i++)
if ((st[i] != ' ') && ((i == 0) || (st[i - 1] == ' ')))
{j = i;b[k] = i; while (st[j] != ' '){
a[k]++; j++;}k++;}max = a[0];
for (i = 1; i<k; i++) if (a[i]>max)
{max = a[i]; z = i;}
cout << "Номер наибольшего слова слова = " << z + 1 << ' ' ;
cout << endl;
cout << "Позицыя(Отсчет от 0) = " << b[z] << ' ';
cout << endl; system("pause"); return 0;}
Рис. 6 Результат 6 завдання
2.7 Завдання № 7. Програмування з використанням Структур.
У довідковій аеропорту зберігається розклад вильоту літаків на наступну добу. Для кожного рейса вказані номер рейса, тип літака, пункт призначення, час вильоту. Вивести всі номери рейсів, типів літаків і час вильоту в заданий пункт призначення в порядку зростання часу вильоту.
Код програми:
#include "stdafx.h"
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <utility>
using namespace std;
struct aero {
int Reys;
char Tip_sam[12];
char kyda_let[20];
double vremy; };
int main(){
setlocale(0, "rus");
aero mas[99];int i, x;x = 0;
cout << "Введите даные для обработки...." << endl;
cout << "Введите общее количество рейсов" << endl;
cin >> x;for (i = 0; i < x; i++){
cout << "Введите номер рейса..." << endl;
cin >> mas[i].Reys;
cout << "Введите тип самолета... " << endl;
cin >> mas[i].Tip_sam;
cout << "Введите пункт назначения... " << endl;
cin >> mas[i].kyda_let;
cout << "Введите время прибытия(час.)... " << endl;
cin >> mas[i].vremy;}
cout << "Даные введены успешно... " << endl;
system("pause"); system("cls");
cout << "Вы ввели..." << endl;
cout << "№Рейса" << " " << "Тип самолета" << " " << "Куда летит" << " " << "Время прибытия(час.)" << endl;
cout << "------" << " " << "------------" << " " << "----------" << " " << "--------------" << endl;cout << endl;cout << endl;
for (i = 0; i < x; i++){
cout << " " << mas[i].Reys;
cout << " " << mas[i].Tip_sam;
cout << " " << mas[i].kyda_let;
cout << " " << mas[i].vremy << endl;}
cout << endl;cout << endl;
cout << "----------------------------------------------------" << endl;
cout << "Отсортированый массив по спаданию времени вылета -> " << endl; cout << endl; for (i = 0; i < x; i++){
if (mas[i].vremy<mas[i+1].vremy){swap(mas[i], mas[i + 1]); }
cout << " " << mas[i].Reys;
cout << " " << mas[i].Tip_sam;
cout << " " << mas[i].kyda_let;
cout << " " << mas[i].vremy << endl;}
system("pause");return 0;}
Рис. 7 Результат 7 завдання
2.8 Завдання № 8. Програмування з використанням функцій.
Вивести на екран таблицю значень функції Y(x) і її розкладання в ряд S(x) з точністю 0,1 таблиць. 8.1. Вивести число ітерацій, необхідне для досягнення заданої точності. Обчислення S(x) і Y(x) оформити у вигляді функцій.
Код програми:
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
typedef double(*uf)(double, double, int &);
void tabl(double, double, double, double, uf);
double y(double, double, int &);
double s(double, double, int &);
int main(){ setlocale(0, "rus"); cout << setw(8) << "x" << setw(15) << "y(x) " << setw(10) << "k" << endl; tabl(0.1, 0.8, 0.1, 0.1, y); cout << endl;
cout << setw(8) << "x" << setw(15) << "s(x) " << setw(10) << "k" << endl; tabl(0.1, 0.8, 0.1, 0.1, s);
cout << endl; system("pause"); return 0;}
void tabl(double a, double b, double h, double eps, uf fun)
{b = 2,5; int k = 0;double sum;
for (double x = a; x<b + h / 2; x += h)
{sum = fun(x, eps, k);
cout << setw(8) << x << setw(15) << sum << setw(10) << k << endl; }}
double y(double x, double eps, int &k){ double p;
p = 3.14; return (3*pow(x,2)-6*p*x+2*pow(p,2))/12;}
double s(double x, double eps, int &k){ double a, c, sum;
sum = a = c = x;k = 1;while (fabs(c) >eps) {
c = cos(k*x)/pow(k,2);
a *= -c;sum += a;k++;} return sum;}
Рис. 8 Результат 8 завдання
2.9 Завдання № 9. Програмування з використанням рекурсії.
Обчислити середнє значення елементів одновимірного масиву.
Код програми:
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <stdio.h>
#include <time.h>
using namespace std;
double sz(int);double szr(int);double s;
int a[100], i, n;int main()
{srand((unsigned)time(NULL));
cout << "vvedite razmer mass: n=";
cin >> n;cout << endl;
for (i = 0; i < n; i++){
a[i] = rand() % 100 - 32; // рандомное заполнение массива
cout << a[i] << " ";}cout << endl;
cout << "s(ne rekurs)=" << sz(i) << endl;
cout << "s(rekurs)=" << szr(i) << endl;
system("pause");return 0;}
double sz(int i){s = 0;
for (i = 0; i <= n; i++) s += a[i];
s /= n;return s;}
double szr(int i)
{if (i<0) return 0;
else return s += a[i];}
Рис. 9 Результат 9 завдання
2.10 Завдання № 10. Програмування з використанням файлів.
Ведомость студентів, що здавали сесію, містить ФІО і оцінки по чотирьох предметах. Вивести список студентів, що здали сесію з середнім балом більше 7.
Код програми:
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
FILE *fl;
typedef struct
{
char fio[30];
int matem;
int fiz;
int pro;
int php;
} TStudent;
TStudent stud[30]; // Массив структур
char name[20]; // Имя файла
int nst = 0; // Число введенных структур
int menu(); // Меню
void nnf(); // Ввести имя файла
void newf(); // Создать новый файл
void spisok(); // Ввести список
void opf(); // Открыть файл
void resc(); // Вывести результат на экран
void resf(); // Вывести результат в файл
int main()
{
setlocale(0, "rus");
while (true)
{
switch (menu())
{
case 1: nnf(); break;
case 2: newf(); break;
case 3: spisok(); break;
case 4: opf(); break;
case 5: resc(); break;
case 6: resf(); break;
case 7: return 0;
default: cout << "Даного пункта не существует, попробуйте еще раз!";
}
cout << endl;
system("pause");
system("cls");}
}
int menu() // Меню
{
setlocale(0, "rus");
cout << "Выберите действие:" << endl;
cout << "1. Ввести имя файла" << endl;
cout << "2. Зоздать новый файл" << endl;
cout << "3. Ввести даные" << endl;
cout << "4. Открыть файл" << endl;
cout << "5. Вывести результат" << endl;
cout << "6. Вывести в файл" << endl;
cout << "7. Выход" << endl;
int i;
cout << endl;
cout << "---> ";
cin >> i;