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

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


 

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

72713. Индикаторный нутромер 100 KB
  Нутромеры индикаторного вида выпускают со стандартизованными пределами измерений 610 мм 1018 мм и др. К прибору прилагаются сменные стержни и шайбы устанавливающиеся в отверстие тройника головки нутромера. Устройство и принцип действия прибора.
72714. Оптимизация каналов реализации продукции 37.5 KB
  Постановка задачи Определить оптимальную структуру каналов реализации получения максимальной выручки от реализации продукции. Известна цена реализации продукции по каждому каналу реализации табл. цена реализации продукции тыс.
72715. Знакомство со средой программирования C++ Builder 6 394 KB
  Цель работы: Знакомство с оболочкой среды визуального программирования C++Builder. Получение навыков создания простейших приложений. Методические указания. В ходе выполнения лабораторной работы необходимо, используя предложенную последовательность действий, ознакомиться с интерфейсом...
72716. Изучение основных компонентов среды С++ Builder 6: Button, Edit, Label. Решение алгебраических задач 443.5 KB
  Из главной формы необходимо вызвать вторую форму нажатием кнопки мыши на поле главной формы. На поле второй формы должны быть расположены поле для ввода числа поле результата суммирования вводимых чисел поля ввода и вывода чисел должны иметь поясняющий текст.
72717. ОПРЕДЕЛЕНИЕ КИНЕМАТИЧЕСКОЙ ВЯЗКОСТИ 336 KB
  Чаще всего для определения кинематической вязкости используют стеклянные вискозиметры в которых испытуемая жидкость протекает через капиллярные трубки определенного диаметра. В основе этого метода лежит известная формула Пуазейля для динамической вязкости...
72718. ПОЛІПЛОЇДІЯ 44 KB
  За характером змін генотипу розрізняють: геномні мутації пов’язані із зміною кількості хромосом; хромосомні мутації структурні зміни хромосом втрата переміщення подвоєння окремих ділянок перекомбінація фрагментів пошкоджених хромосом.
72719. Безопасность жизнедеятельности, лабораторный практикум 11.15 MB
  Исследование параметров естественного и искусственного производственного освещения. Исследование производственного шума и эффективности борьбы с ним. Исследование условий воспламенения горючих веществ от статического электричества...
72720. СОЗДАНИЕ WEB-СТРАНИЦ С ПОМОЩЬЮ ЯЗЫКА HTML 470 KB
  HTML представляет собой совокупность достаточно простых команд которые вставляются в исходный текст документа SCIIфайл и позволяют управлять представлением этого документа на экране дисплея. Таким образом текст подготовленный в любом текстовом редакторе и сохраненный в обычном...