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.  Выводы по работе

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


 

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

14698. Определение характеристик двухполюсных резистивных элементов 189.5 KB
  ЛАБОРАТОРНАЯ РАБОТА №3 Определение характеристик двухполюсных резистивных элементов Цель работы: Генератор и нагрузка собираются по схеме звезды. Исследуются зависимые и независимые схемы соединения генератора и нагрузки. Объект и средства измерения:
14700. Определение характеристик пассивных элементов в цепи постоянного тока 52.5 KB
  ЛАБОРАТОРНАЯ РАБОТА №1 Определение характеристик пассивных элементов в цепи постоянного тока Цель работы: Овладеть методикой измерения сопротивлений и определения вольтамперных характеристик пассивных двухполюсников Объект и средства измерения: Об...
14701. Определение характеристик пассивных элементов в цепи переменного тока 58 KB
  ЛАБОРАТОРНАЯ РАБОТА №2 Определение характеристик пассивных элементов в цепи переменного тока Цель работы: Определение параметров пассивных двухполюсников при переменном токе. Объект и средства измерения: Объектом исследования служат двухполюсны
14702. Національна етика. Сімейна етика. Релігійна етика. Біоетика 76 KB
  Моральний зміст відношення до природи як до мети і засобу людської діяльності. Рослинний і тваринний світ як морально-естетичне багатство людства. Завдання та взаємодія екологічного і етичного виховання
14703. Медицинская реабилитация после эндопротезирования коленного сустава 98 KB
  Цель реабилитации — оптимальное восстановление функций тотально замещенного сустава и статодинамической функции конечности в целом, а также приобретение самостоятельности в быту, способности к профессиональной деятельности, то есть полноценное функциональное, социально-бытовое и профессиональное восстановление.
14704. РЕАКЦИИ ИОННОГО ОБМЕНА 73.5 KB
  ЛАБОРАТОРНАЯ РАБОТА №6 РЕАКЦИИ ИОННОГО ОБМЕНА. Общие сведения. Реакции ионного обмена реакции связывания ионов которое происходит при образовании слабого или малорастворимого электролита. Реакции ионного обмена подчиняются всем закономерностям химическ
14705. ИССЛЕДОВАНИЕ РАБОТЫ ГАЗОЖИДКОСТНОГО ПОДЪЕМНИКА ПРИ ПОСТОЯННОМ ПОГРУЖЕНИИ ПОД УРОВЕНЬ ЖИДКОСТИ 369 KB
  Лабораторная работа № 4. ИССЛЕДОВАНИЕ РАБОТЫ ГАЗОЖИДКОСТНОГО ПОДЪЕМНИКА ПРИ ПОСТОЯННОМ ПОГРУЖЕНИИ ПОД УРОВЕНЬ ЖИДКОСТИ Цель работы получение экспериментальной зависимости подачи подъемника от расхода газа называемой характеристической кривой работ
14706. Изучение спектров поглощения воды в оптических материалах 156.95 KB
  Лабораторная работа №2 Изучение спектров поглощения воды в оптических материалах Цель работы: Измерить зависимости интенсивности от длины волны для лампы и образца; Получить спектр поглощения ниобата лития. Схема опыта: Ход работы: ...