ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 13.04.2024

Просмотров: 28

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Міністерство освіти і науки України Машинобудівний коледж Сумського державного університету Циклова комісія спеціальності 5.05010101

Щоденник-звіт з навчальної практики База практики________________________________________________________

Завдання на навчальну практику студента

1 Теоретичні відомості

2 Практичне завдання

2.1 Завдання № 1.

2.2 Завдання № 2. Програмування алгоритмів, що розгалужуються.

2.3 Завдання № 3. Програмування циклічних алгоритмів.

2.4 Завдання № 4. Програмування з використанням одновимірних масивів.

2.5 Завдання № 5. Покажчики. Програмування з використанням динамічних двовимірних масивів.

2.6 Завдання № 6. Програмування з використанням рядків.

2.7 Завдання № 7. Програмування з використанням Структур.

2.8 Завдання № 8. Програмування з використанням функцій.

2.9 Завдання № 9. Програмування з використанням рекурсії.

2.10 Завдання № 10. Програмування з використанням файлів.

2.11 Завдання № 11.

Висновок

Література

{ 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;