Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1 семестр / 4 Практика

.docx
Скачиваний:
8
Добавлен:
28.06.2020
Размер:
319.91 Кб
Скачать

БАЛАКОВСКИЙ ИНЖЕНЕРНО-ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ – ФИЛИАЛ

ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО АВТОНОМНОГО ОБРАЗОВАТЕЛЬНОГО

УЧРЕЖДЕНИЯ ВЫСШЕГО ОБРАЗОВАНИЯ

«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ЯДЕРНЫЙ УНИВЕРСИТЕТ «МИФИ»

ФАКУЛЬТЕТ АТОМНОЙ ЭНЕРГЕТИКИ И ТЕХНОЛОГИЙ

КАФЕДРА «ИНФОРМАТИКА И УПРАВЛЕНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ»

ПРАКТИЧЕСКАЯ РАБОТА №4

по дисциплине «Языки программирования»

Вариант №8

Выполнил:

студент гр.

Проверил ст. преп. каф. ИУС

Михеев И.В. _____________

«____»______________2020г.

Балаково 2020

Цель работы: развитие практических навыков при решении задач на методы обработки одномерных и многомерных массивов на языке программирования СИ.

Задание 1. Массив состоящий из 10 элементов заполнить случайными числами. Найти сумму элементов массива, расположенных между первым и последним отрицательными элементами.

#include “conio.h”

#include “iostream”

#define size 10 //размер массива

int main()

{

setlocale(LC_ALL, "rus");

int A[size];

int i, sum = 0;

for (i = 0; i < size; i++) //счетчик

{

A[i] = rand()%100;

printf("[%i]=%i\n ", i, A[i]);

}

int one = 0; //первый отр.эл

for (int i = 0; i < 10; i++)

{

if (A[i] < 0)

{

one = i;

break; //выход из цикла

}

}

int two = 0; //целочисленное имя

for (int i = 9; i >= 0; i--)

{

if (A[i] < 0)

{

two = i + 1;

break;

}

}

for (int i = one; i < two; i++)

{

sum += A[i];

}

printf("Сумма=");

printf("%i", sum);

_getch();

}

Рисунок 1 – Пример работы программы «Задача 1»

Задание 2. Полученный массив отсортировать любым способом по возрастанию или убыванию.

#include "iostream"

#include “conio.h”

#define size 10

int main()

{

setlocale(LC_ALL, "rus");

int A[size];

int j, i, c,sum=0;

printf("Исходный массив\n");

for (i = 0; i < size; i++)

{

A[i] = rand() % 100;

printf("[%i]=%i ", i, A[i]);

}

for (i = 0; i < size - 1; i++)

{

for (j = i; j < size; j++)

{

if (A[i] > A[j])

{

c = A[i];

A[i] = A[j];

A[j] = c;

}

}

}

printf("\nОтсортированный по возрастанию массив\n");

for (i = 0; i < size; i++)

{

printf("[%i]=%i ", i, A[i]);

}

int one = 0;

for (int i = 0; i < 10; i++)

{

if (A[i] < 0)

{

one = i;

break;

}

}

int two = 0;

for (int i = 9; i >= 0; i--)

{

if (A[i] < 0)

{

two = i + 1;

break;

}

}

for (int i = one; i < two; i++)

{

sum += A[i];

}

printf("\nСумма=");

printf("%i", sum);

_getch();

}

Рисунок 2 – Пример работы программы «Задача 2»

Задание 3. Реализоваться алгоритм из первого задания с использованием указателей.

#include “conio.h”

#include “iostream”

#define size 10

int main()

{

setlocale(LC_ALL, "rus");

int A[size];

int i, sum = 0;

for (i = 0; i < size; i++)

{

A[i] = rand() % 100;

printf("[%i]=%i\n ", i, A[i]);

}

int one = 0;

for (int i = 0; i < 10; i++)

{

if (A[i] < 0)

{

one = i;

break;

}

}

int two = 0;

for (int i = 9; i >= 0; i--)

{

if (A[i] < 0)

{

two = i + 1;

break;

}

}

for (int i = one; i < two; i++)

{

sum += A[i];

}

printf("Сумма=");

printf("%d", sum); //использую указатели

int*sumP = ∑ //указатели для упрощения кода(P(pointer))

int* oneP = &one;

for (int i = 0; i < 10; i++)

{

if (*(A) < 0)

{

*oneP = i;

break;

}

}

int*twoP = &two;

for (int i = 9; i >= 0; i--)

{

if (*(A) < 0)

{

*twoP = i + 1;

break;

}

}

for (int i = *oneP; i < *twoP; i++)

{

*sumP += *(A);

}

printf("\nСумма после использования указателей=");

printf("%i", *sumP);

getch();

}

Рисунок 3 – Пример работы программы «Задача 3»

Вывод: получил навыки решения задач на методы обработки одномерных и многомерных массивов на языке программирования СИ.

Соседние файлы в папке 1 семестр