Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 30.04.2014, 16:02   #11 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Vasilisk Посмотреть сообщение
Вот такую бредятину я написал:
Ага, причем полнейшую. Просто бессвязный набор значков.
Антон, давай, берись за ум и решай задачу осмысленно. Прежде всего, разберись, как работает метод пузырька, тогда и дело пойдёт.
Vladimir_S вне форума   Ответить с цитированием

Старый 30.04.2014, 16:02
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

В похожих темах обычно много интересных советов

Работа с массивами на ассемблере
Работа с массивами
Две задачи с массивами в Паскале
Паскаль. Работа с двумерными массивами

Старый 01.05.2014, 02:02   #12 (permalink)
poiu
Member
 
Регистрация: 05.03.2014
Сообщений: 200
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 834
По умолчанию

на Си тоже пишу редко. на паскале вот...
это 3 задание...

Код:
const
 n = 5;
 m = 5;

var
 i, j, k: byte;
 sum, tmp: real;
 mas: array[0..n-1, 0..m-1] of real;
 mas_sum: array [0..m-1] of real;

begin
randomize();
writeln('Input mas:');
// do mas
for i:= 0 to n-1 do
 for j:= 0 to m-1 do mas[i, j]:= -10 + random(20);
// show mas, calc row sum and write mas_sum
for i:= 0 to n-1 do
 begin
  sum:= 0;
   for j:= 0 to m-1 do
    begin
     write(mas[i, j]:4:0);
     sum:= sum + mas[i, j];
    end;
  writeln;
  mas_sum[i]:= sum;
 end;
// show mas_sum
writeln('Massive of Sum:');
for i:= 0 to n-1 do write(mas_sum[i]:4:0);
//sort by puzir
for i:= 0 to n-1 do
 for j:= 0 to n-i do
  if mas_sum[j] > mas_sum[j+1] then
   begin
    tmp:= mas_sum[j];
    mas_sum[j]:= mas_sum[j+1];
    mas_sum[j+1]:= tmp;

    // change row
    for k:= 0 to m-1 do
     begin
      tmp:= mas[j, k];
      mas[j, k]:= mas[j+1, k];
      mas[j+1, k]:= tmp;
      end; // for
   end; // if
// show sorted mas
writeln;
writeln('Output mas:');
for i:= 0 to n-1 do
 begin
  for j:= 0 to m-1 do write(mas[i, j]:4:0);
 writeln;
 end;
// show sotred mas_sum
writeln('Massive of Sum:');
for i:= 0 to n-1 do write(mas_sum[i]:5:0);
readln;
end.
poiu вне форума   Ответить с цитированием
Старый 02.05.2014, 14:45   #13 (permalink)
Vasilisk
Member
 
Аватар для Vasilisk
 
Регистрация: 16.05.2010
Сообщений: 1,194
Сказал(а) спасибо: 0
Поблагодарили 4 раз(а) в 1 сообщении
Репутация: 1649
Cool

Результат:
Код:
#include <iostream>
#include <stdio.h>
#include <conio.h>

void main()
{
	int i, n, m, j, k;
	double B[10], A[10][10], sum, proiz, tmp;

	m = 4;
	n = 5;

	A[1][1] = -9.6; A[1][2] = 2.5; A[1][3] = 5.4; A[1][4] = -9.9; A[1][5] = 1.7;
	A[2][1] = -7.5; A[2][2] = -7.6; A[2][3] = 8.5; A[2][4] = 8.8; A[2][5] = 1.1;
	A[3][1] = 9.2; A[3][2] = -3.9; A[3][3] = 2.1; A[3][4] = 2.2; A[3][5] = 4.5;
	A[4][1] = 9.4; A[4][2] = 7.3; A[4][3] = -4.5; A[4][4] = 4.3; A[4][5] = -7.5;

	cout << endl << endl << endl;
	cout << "  Matrix before" << endl << endl;
	for (i = 1; i <= m; i++)
	{
		printf("  ");
		for (j = 1; j <= n; j++)
			printf("%3.1f  ", A[i][j]);
		printf("\n");
	}

	cout << endl << endl << endl;
	cout << "  Matrix Sum" << endl << endl;


	sum = 0;
	for (i = 1; i <= m; i++)
	{

		for (j = 1; j <= n; j++)
		{
			sum += A[i][j];
		}
      printf("  ");
		cout << "Sum " << sum << " ";
		sum = 0;
		cout << endl;

	}






	proiz = 1;
	for (i = 1; i < m; i++)
	for (j = 1; j<n; j++)
	{
		if (A[i][j]>0)
			proiz *= A[i][j];
	}
	cout << endl << endl << endl;

	cout << "  Matrix Proizv" << endl << endl;
   printf("  ");
   cout << proiz << endl;



	
	for (i = 1; i <= m; i++)
	{
		sum = 0;
		for (j = 1; j <= n; j++)
		{
			sum = sum + A[i][j];
		}
		B[i] = sum;
		
		//cout << B[i];
		//printf("  ");
	}

	
		for (j = 1; j<=m-1; j++)
		if (B[j] > B[j + 1])
		{
			//cout << B[j];
			//printf("  ");
			tmp = B[j];
			B[j] = B[j + 1];
			B[j+1] = tmp;
			
			for (k = 1; k <= n; k++)
			{
				//cout << A[j][k];
				//cout << A[j+1][k];

				printf("  ");
				tmp = A[j][k];
				A[j][k] = A[j + 1][k];
				A[j + 1][k] = tmp;
			}
			

		}
	





	cout << endl << endl << endl;
	cout << "  Matrix after" << endl << endl;
	for (i = 1; i <= m; i++)
	{
		printf("  ");
		for (j = 1; j <= n; j++)
			printf("%3.1f  ", A[i][j]);
		printf("\n");
	}







	_getch();
}
Да раза сумму вычисляет и угрюмый, но работает... (так как сдал сегодня, не стал переделывать)
Всем большое спасибо!!!
Vasilisk вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 02:30.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.