_ОП_ЛР7
.doc
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
-
Федеральное государственное автономное образовательное учреждение высшего образования
«Санкт-Петербургский государственный университет аэрокосмического приборостроения»
КАФЕДРА № 2
Преподаватель
доцент, к.т.н. Куртяник Д.В.
Отчёт
по лабораторной работе №7
по дисциплине Информатика
на тему: « Статические одномерные массивы»
Работу выполнил
студент гр. 4616 Павлов А.В.
Санкт-Петербург
Цель лабораторной работы: изучение структурной организации массивов и способов доступа к их элементам; совершенствование навыков процедурного программирования на языке C/С++ при решении задач обработки статических одномерных массивов.
Задание на программирование: используя технологию процедурного программирования, разработать программу обработки одномерных статических массивов в соответствии с индивидуальным заданием.
Порядок выполнения работы:
1) Получить у преподавателя индивидуальное задание и выполнить постановку задачи: сформулировать условие, определить входные и выходные данные, их ограничения.
2) Разработать математическую модель: описать с помощью формул и рисунков структуру массивов и процесс их преобразования.
3) Построить схему алгоритма решения задачи.
4) Составить программу на языке C/C++.
5) Входные данные на этапах тестирования и демонстрации работы преподавателю должны задаваться либо с использованием специально подобранных арифметических формул, либо вводиться с клавиатуры по запросу. Датчики псевдослучайных чисел использовать запрещается.
Выходные данные должны выводиться на экран с пояснениями.
6) Проверить и продемонстрировать преподавателю работу программы на полном наборе тестов, в том числе с ошибочными входными данными. Входные и выходные массивы должны выводиться в одном и том же формате.
7) Использовать стандартные потоковые объекты ввода/вывода cin и cout.
8) Оформить отчет о лабораторной работе в составе: постановка задачи, математическая модель, схема алгоритма решения, текст программы, контрольные примеры.
1-3)
Вариант 10
10.
Дан вещественный массив a0, a1, a2,…, an-1. Если в этом массиве есть хотя бы один элемент, значение которого меньше Р, то значения всех отрицательных элементов массива заменить их квадратами, в противном случае значений всех элементов массива умножить на число B.
Ввод данных масива, P, B => Проверка каждого элемента на условие ai<P и ai<0, если выполняется то ai<0 возводиться в квадрат
Текст программы.
//Преобразование массива
#include <iostream>
#include <locale.h>
#include <stdio.h>
#include <math.h>
using namespace std;
const int raz = 5; //размер массива
typedef int telem; //определение типов элементов массива
typedef telem tmas[raz]; //определение типа массива
void inputmas(tmas a);
int main(){
setlocale(LC_ALL,"Russian") ;
//изначальные данные
tmas a;
int p,b,var;
for(;;){
//Выбор
cout<<"\nВид действия:\n1 - вычисления предела произведения\n2 - завершения задачи\nвведите вид действия -> ";
cin>>var;
switch(var){
case 1:
//ввод элементов массива и чисел
cout<<"\nвведите значение Р: ";
cin>>p;
cout<<"введите значение В: ";
cin>>b;
inputmas(a);
//вычисление
for(int i=0;i<raz;i++){
if(a[i]<p){
for(i=0;i<raz;i++){
if(a[i]<0){a[i]*=a[i];}
}//for
break;
}//if
else{
if( i==raz-1){
for(int i=0;i<raz;i++){a[i]*=b;}
}}
}//for
//вывод результата
cout<<"\nконечный массив:\n";
for(int i=0;i<raz;i++){cout<<"a["<<i<<"]="<<a[i]<<"; ";}
break;
case 2:return 0;
}//switch
}//for
}
void inputmas(tmas a){
cout<<"введите в одной строке элементы массива, состоящего из "<<raz<<" целых чисел,\nи нажмите <ENTER>\n";
for(int i=0;i<raz;i++){cin>>a[i];}
//ввывод изначального массива
cout<<"\nизначальный массив:\n";
for(int i=0;i<raz;i++){cout<<"a["<<i<<"]="<<a[i]<<"; ";}
}
Примеры.