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

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


 

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

18574. НАЗНАЧЕНИЕ, СУЩНОСТЬ И СОСТАВНЫЕ ЧАСТИ ИНФОРМАЦИОННОГО ОБЕСПЕЧЕНИЯ САПР 93.5 KB
  НАЗНАЧЕНИЕ СУЩНОСТЬ И СОСТАВНЫЕ ЧАСТИ ИНФОРМАЦИОННОГО ОБЕСПЕЧЕНИЯ САПР Основное назначение ИО САПР уменьшение объемов информации требуемой в процессе проектирования от разработчика РЭС и исключение дублирования данных в прикладном программном и техническом обе...
18575. УРОВНИ ПРЕДСТАВЛЕНИЯ ДАННЫХ 117.5 KB
  УРОВНИ ПРЕДСТАВЛЕНИЯ ДАННЫХ Существует три уровня представления данных: уровень пользователя предметная область логический и физический. Каждый объект предметной области характеризуется своими атрибутами каждый атрибут имеет имя и значение. Например объект осц
18576. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ 42.5 KB
  ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ Процесс разработки структуры БД на основании требований пользователя называют проектированием БД ПБД. Результатами ПБД являются структураБД состоящая из логических и физических компонент и руководство для прикладных программистов. Р...
18577. Функции сетевого программного обеспечения 33.5 KB
  Функции сетевого программного обеспечения Принято выделять в ПО АС общесистемное ПО системные среды и прикладное ПО. К общесистемному ПО относят ОС используемых ЭВМ и вычислительных систем а также сетевое ПО типовых телекоммуникационных услуг. Основой системной ср
18578. Прикладные протоколы и телекоммуникационные информационные услуги 65.5 KB
  Прикладные протоколы и телекоммуникационные информационные услуги Прикладные протоколы и телекоммуникационные информационные услуги Основные услуги телекоммуникационных технологий электронная почта передача файлов телеконференции справочные службы доски о
18579. Системы распределенных вычислений 42.5 KB
  Системы распределенных вычислений При выполнении проектных процедур с использованием более чем одного узла сети различают режимы удаленного узла и дистанционного управления рис. 5.1. В режиме удаленного узла основные процедуры приложения исполняются на терминальн...
18580. Информационная безопасность. Симметричную и асимметричную схемы шифрования 38 KB
  Информационная безопасность При обмене информацией между участниками проектирования возможны как утечка конфиденциальных данных так и нарушение целостности данных. Поскольку в САПР зачастую используются связи со смежными предприятиями через сети общего пользовани
18581. Основные функции и проектные процедуры, реализуемые в ПО САПР 40 KB
  Основные функции и проектные процедуры реализуемые в ПО САПР В состав развитых машиностроительных САПР входят в качестве составляющих системы CAD САМ и CAE. Функции CADсистем в машиностроении подразделяют на функции двумерного и трехмерного проектирования. К функциям 2D...
18582. Автоматизированные системы управления Автоматизация управления предприятиями 42 KB
  Автоматизированные системы управления Автоматизация управления предприятиями Системы управления в промышленности как и любые сложные системы имеют иерархическую многомодульную структуру. Если предприятие является концерном научнопроизводственным объединение