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

Лёша / laba_nomer_7

.docx
Скачиваний:
3
Добавлен:
04.06.2015
Размер:
5.88 Кб
Скачать

Федеральное государственное автономное

образовательное учреждение

высшего профессионального образования

«СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»

Институт космических и информационных технологий

институт

Вычислительная техника

кафедра

ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ 7

тема

Разработка блок-схем алгоритма, разработка и отладка программ обработки одномерных массивов

Преподаватель __________ ______________

подпись, дата инициалы, фамилия

Студент КИ13-11Б ________________ __________ Сафиуллин Д.В.

номер группы номер зачетной книжки подпись, дата инициалы, фамилия

Красноярск 2013

Цели работы:

закрепить навыки построения блок-схем алгоритма обработки одномерных массивов: научиться обрабатывать одномерные массивы с использованием индексов и указателей.

Задача:

Заменить минимальный элемент массива средним геометрическим положительных элементов массива. Входной файл lb 4_12. in содержит в первой строке одно число – N (количество элементов массива А). Во второй строке входного файла содержится N чисел, разделенных пробелами, и являющихся элементами массива А. Выходной файл lb 4_12. out - в первой строке число, равное количеству элементов массива А, а во второй – элементы массива А.

Порядок выполнения работы:

В соответствии с поставленной задачей необходимо разработать графическую схему алгоритма, составить два варианта программы (один с индексами, другой с указателями) и отладить их в среде С++, продемонстрировать преподавателю, как изменяются основные переменные в отладочном окне при выполнении программы по шагам, подготовить отчет, пройти тест и защитить лабораторную работу перед преподавателем.

#include <iostream>

#include <clocale>

#include <cstdlib>

void main()

{

using namespace std;

setlocale(LC_ALL, "Russian");

cout << "Введите количество элементов массива: ";

int j;

cin >> j;

const int n(100);

double x[n];

int k(1);

while (k<=j)

{

cout << "Введите " << k << " элемент массива: ";

cin >> x[k];

k++;

}

int l(0); // Найдём кол-во положительных чисел

k=1;

while(k<=j)

{

if(x[k]>0)

l++;

k++;

}

double geom(1); // Среднее геометрическое

k=1;

while(k<=j)

{

if(x[k]>0)

geom=geom*pow(x[k],1.0/l);

k++;

}

double min; // Находим минимальные

k=1;

min=x[1];

while(k<j)

{

k++;

if(min>=x[k])

{

min=x[k];

}

}

k=1; // Заменим минимальные на среднее геометрическое

while(k<j)

{

if(x[k]==min)

x[k]=geom;

k++;

}

for(k=1;k<=j;k++)

cout << x[k] << " ";

system("pause");

}

Проверка

j x[n]

Ввод: 3 2 4 5 Вывод: 3.41995 4 5

Ввод: 6 9 -2 -2 1 3 1 Вывод: 9 2.27951 2.27951 1 3 1

Ввод: 4 -3 -2 -3 9 Вывод: -3 -2 9 9

Проверенно на сайте http://www.wolframalpha.com/

Соседние файлы в папке Лёша