42704

Программирование вложенных циклов и матричных задач

Лабораторная работа

Информатика, кибернетика и программирование

В самом начале для удобстава пользователю предоставляется менюшка с выбором действий. 1-ручное заполнение матрицы, 2 – рандомное и выход из программы. Эта реализация выполняется спомощь оператора switch (+ разумеется выбор действий case 1, case 2, case 3). После того как матрица будет заполнена программа по условию задачи с помощью цикла for переберает каждый эл. матрицы по диагонале и ищет отрицательный эл. если не находит то выводит сообщение “Отрицательные числа в диагонале отсудствуют”.

Русский

2013-10-30

174 KB

3 чел.

Министерство образования и науки РФ

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

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

Владимирский государственный университет

имени А.Г. и Н.Г. Столетовых

(ВлГУ)

Лабораторная работа № 4

по дисциплине:

«Языки программирования»

на тему:

Программирование вложенных циклов
и матричных задач

выполнил:

ст.гр. ВТс-212

Илларионов В.А.

приняла:

Сущинина А. А.

Владимир 2012г.

  1.  Дана действительная квадратная матрица порядка 10. В строках с отрицательным элементам на главной диагонали найти наибольший из всех элементов
  2.  Схема алгоритма решения задачи.


  1.  Спецификации всех разработанных процедур и/или функций.

В самом начале для удобстава пользователю предоставляется менюшка с выбором действий. 1-ручное заполнение матрицы, 2 – рандомное и выход из программы. Эта реализация выполняется спомощь оператора switch (+ разумеется выбор действий case 1, case 2, case 3). После того как матрица будет заполнена программа по условию задачи с помощью цикла for переберает каждый эл. матрицы по диагонале и ищет отрицательный эл. если не находит то выводит сообщение “Отрицательные числа в диагонале отсудствуют”. Нас все же интересует когда отрицательный присудствует, тогда программа выводит с помощьют товоже цикла for (+ if для нахождения макс числа) все эл. строки матрицы где был найден отрыцательный эл., также наибольшее эл. и их сумму.

  1.  Текст программы решения задачи на языке высокого уровня С++

#include "stdafx.h"

#include <iostream>

#include <cmath>

#include <windows.h>

using namespace std;

const int MAX_SIZE = 100;     

int main()

{ setlocale(LC_ALL, "RUS");

 int n = 0; //  размер матрицы

 float x[MAX_SIZE] [MAX_SIZE];

int lm = 0; //для меню

cout << "Выберите желаемое действие: " << endl;

cout << "1: Ввести матрицу в ручную: " << endl;

cout << "2: Ввести данные в матрицу рандомно" << endl;

cout << "3: Выход из программы: ";

cin >> lm;

 switch(lm){    //switch

 case 1:

// для ручного ввода матрицы

cout<<"Введите размер матрицы:  ";

cin>>n;

cout<<"\n";

    for( int i = 0; i < n; i++)                 //внешний цикл – по строкам

 {

   cout<<"Введите значения строки матрицы "  << i+1 <<"\t";

   cout<<"\n\n";

 for( int j = 0; j < n; j++)     //вложенный цикл – по столбцам

 {     //генерация псевдослучайного числа

              cout<<"Введите значения столбца матрицы "  << j+1<<"\t";

     cin>> x[i][j];

     cout<<"\n";

     }

 } // enf for внешний цикл – по строкам

break;

 case 2:

// инициализация массива псевдослучайными числами---------------------------------

   cout<<"Введите размер матрицы:  ";

cin>>n;

cout<<"\n";

    for( int i = 0; i < n; i++)                 //внешний цикл – по строкам

 for( int j = 0; j < n; j++)     //вложенный цикл – по столбцам

 {     //генерация псевдослучайного числа

             x[i][j] = ((float)rand()/RAND_MAX+rand()%100 - rand()%50);  

 }

break;

 case 3:

 return 0;

}

//вывод матрицы на экран---------------------------------------------------------------------

            printf("\n\n");

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

                for( int j = 0; j < n; j++)

         printf("[%i][%i] элемент матрицы = %3.2f\n", i, j, x[i][j]);

printf("\n\n");

 

 float Sum_String = 0, Max_String = 0;

 for (int i = 0; i < n; i++) // отрицательная диагональ

{

 if ( x[i][i] < 0)

 {

  int j;

  cout << "Элементы массиа в строке " << i <<"\n\n";

  for ( int j = 0; j < n; j++)

   {

   printf (" %3.2f\t", x[i][j]);

    Sum_String = Sum_String + x[i][j]; // сумма строки

    if (Max_String < x[i][j]) Max_String =x[i][j]; // максимальное значение в строке

   }

         cout << "\n";

      printf ("\n\Наибольшее число в строке  = %3.2f" , Max_String);

      printf ("\n\Сумма  чисел в строке = %3.2f" ,Sum_String);

               cout << "\n\n";

 } // end if ( x[i][i] < 0)

} // end for отрицательная диагональ

   if (Max_String == Sum_String && Sum_String == 0)

cout << "В диагонале матрицы отсутствую отрицательные числа \n" ;

 

printf("\n\n");

system("pause");

 return 0;

}

  1.  Тесты и результаты тестирования

 


  1.  Выводы по работе

Таким образом, в данной работе была составлена программа, которая строит матрицу в ручном и автоматическом режиме, находит отрицательные числа в диагонали, в данной диагонали считает сумму на находит наибольшее значение и все это выводит на экран.


 

А также другие работы, которые могут Вас заинтересовать

7004. Стратегия в менеджменте 269 KB
  Стратегия в менеджменте В этой теме осваивающие менеджмент и интересующиеся проблемами развития фирмы могут получить ответы на следующие вопросы: понятие стратегии понятие тактики основные признаки стратегического менеджмента...
7005. Документация и делопроизводство в системе управления 224.5 KB
  Документация и делопроизводство в системе управления В настоящей теме осваивающие профессию менеджера и заинтересованные читатели получат ответы на следующие вопросы: понятийный аппарат документа обозначение реквизитов в документах требования к бл...
7006. Управление персоналом. Персонал организации и его характеристика 417.5 KB
  Управление персоналом В этой теме осваивающие менеджмент и интересующиеся проблемами управления получат ответы на следующие вопросы: характеристика персонала организации основные параметры персонала оценка эффективности использов...
7007. Результативность управления 85.5 KB
  Результативность управления Результативность управления. Качество управления. Эффективность управления. I. Для того, чтобы быть успешной организацией в течении долгого времени, чтобы выжить и достичь своих целей, организация должна быть как эффектив...
7008. Тесты по экологии с ответами 134 KB
  1. Когда был принят закон Республики Узбекистан об охране природы? а) 10 декабря 1991 г б) 8 декабря 1994 г в) 9 ноября 1993 г г) 9 декабря 1992 г. д) 12 декабря 1993 г. 2. Когда отмечается Международный день охраны окружающей среды? а) ...
7009. Исследование электрического поля между двумя электродами в полупроводящей среде 962.5 KB
  Цель: Исследовать влияние формы электродов на картину поля, при изменении характеристик среды. Расчет электрических полей с помощью ЭВМ Для расчета электрических полей используем программу ElectField. В данной программе можно использовать электроды...
7010. Определение пробивного напряжения воздушного промежутка 106.5 KB
  Тема: Определение пробивного напряжения воздушного промежутка. Цель: Получить статистические характеристики электрической прочности воздуха. Рисунок 1. Принципиальная схема. Автомат АП 2. ЛАТР Т1 3. Выпрямительный мост 4. Преобразователи высок...
7011. Определение качества кабельной изоляции по токам абсорбции 42 KB
  Тема: Определение качества кабельной изоляции по токам абсорбции Цель: Изучение приборов и методов измерения сопротивления изоляции электрооборудования выработка навыков использования приборов и методов измерений. Рисунок 1. Упрощенная схема мегомм...
7012. Определение электрической прочности жидких диэлектриков 59.5 KB
  Тема: Определение электрической прочности жидких диэлектриков. Цель работы: Ознакомление с методами испытания жидких диэлектриков, определение пригодности испытываемой жидкости для применения в высоковольтных аппаратах путём сравнения опытных д...