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

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


 

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

73167. Клиентское приложение Базы данных 20.5 KB
  Реализуйте клиентскую программу которая обладает следующими возможностями: Запуск клиента с заданными параметрами Обработка ошибок Запросы на чтение Запросы на добавление данных Запросы на модификацию данных Примечания: технологию создания клиентских приложения для mysql на C можно...
73169. ЛЕБІДКА 3.57 MB
  Навчальні завдання: вивчення конструкції лебідки; визначення основних робочих параметрів - канатоємності барабана, швидкості навивання каната на барабан, зусилля в канаті; вимірювання зусилля в канаті під час пуску двигуна (за допомогою тензоапаратури, аналого-цифрового перетворювача...
73170. ВИВЧЕННЯ ТАЛІВ 2.13 MB
  Визначення зусиль у тяговому ланцюгу ручного таля і ККД механізму під час підіймання вантажу; визначення коефіцієнта опору пересуванню електроталя; визначення сили зчеплення привідних коліс електроталя з монорейкою і розрахунок максимально припустимого прискорення під час розгону таля...
73171. СТІЙКІСТЬ СТРІЛОВОГО КРАНА 610 KB
  Самохідний стріловий кран на пневмоколісному ході (рис.7.1) із баштово-стріловим обладнанням. Ходова частина 1 містить чотири привідних колеса з індивідуальними механізмами пересування. У кутах неповоротної рами розташовані виносні опори 2, які збільшують опорну базу крана...
73172. СТРІЧКОВИЙ КОНВЕЄР 372 KB
  Модель містить жолобчасті трьохроликові роликоопори 1 завантаженої верхньої гілки та однороликові плоскі роликоопори 2 порожньої гілки, які служать для підтримування стрічки 3. Жолобчасті роликоопори порівняно з плоскими забезпечують подвоєння продуктивності з тими...