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

РГР

.docx
Скачиваний:
73
Добавлен:
14.12.2018
Размер:
222.7 Кб
Скачать

МОН УКРАИНЫ

ОДЕССКИЙ НАЦИОНАЛЬНЫЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Институт Компьютерных Систем

Кафедра Информационных систем

Расчётно-графическая работа

по дисциплине: «Алгоритмизация и программирование»

Тема: «Программирование типовых операций обработки данных представленных одномерным массивом»

Вариант №1

Выполнил:

Ст.гр. АИ-171

Анищенко Н.А.

Проверил:

Бабилунга О.Ю.

Одесса 2017

Задание:

Дан массив из 18 вещественных чисел, все элементы которого различны.

а) Найти произведение (ненулевых) эл-тов массива, которые находятся на позициях кратных числу 3.

б) Найти квадраты всех чисел, расположенных между минимальным и максимальным значениями.

в) Отсортировать по возрастанию эт-ты, находящиеся на местах не кратных числу 3

Блок-схема:

Примеры выполнения

Входящие данные: 12.3, 24, -4.3, 4.2, 434.0, 0, 994.2, 43.4, 23.2, 2.112, 32.4, 74.2, 81.3, -98.4, -44.2, -74.7, 72.3, 43.1;

Вывод консоли:

Входящие данные: 0.45, 48.9, 234.95, -23.4, -2.66, 95.8, -34.0, 0, 0, 32.0, 0.54, -43.05, 4.5, 95.2, 94.8, 881.04, 0, -9.5

Вывод консоли:

Код программы:

#include <stdio.h>

#include <stdlib.h>

#define L 18

int main()

{

float a[L];

printf("Enter array elements\n");

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

scanf("%f", &a[i]);

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

printf("%.3f\n", a[i]);

float mul = 1;

for(int i = 0; i < L; i+=3)

if(a[i] != 0)

mul*=a[i];

printf("\nProduct elements of the array at positions multiple of 3 = %.3f\n", mul);

int max, min = max = 0;

for(int i = 1; i < L; i++)

if(a[i] < a[min])

min = i;

else if(a[i] > a[max])

max =i;

printf("\nSquares of all numbers between the minimum and the maximum values\n");

if(min > max)

{

int tmp = max;

max = min;

min = tmp;

}

for(int i = min+1; i < max; i++)

printf("%.3f \n", a[i]*a[i]);

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

{

if(i % 3) {

min = i;

for(int j = i+1; j < L; j++)

if((j % 3) && (a[min] > a[j]))

min = j;

float tmp = a[i];

a[i] = a[min];

a[min] = tmp; } }

printf("\nSorted ascending items on the ground are not multiple number 3\n");

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

printf("%.3f\n", a[i]);

return 0;

}

Описание и анализ ошибок:

При написании программы не было встречено ошибок.