Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Лабораторная. Работа с массивами

Ответить
Настройки темы
C/C++ - [решено] Лабораторная. Работа с массивами

Аватара для Artem-Samsung

Ветеран


Сообщения: 823
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


У друга задачка, обратился ко мне, больше не к кому, а я С++ не знаю,
но всегда знаю, где спросить

Так вот, друзья. Нужно порешать такую задачю:

Цитата:
Заполнить матрицу случайными числами. Отобразить симметрично относительно горизонтальной оси секторы матрицы, которые лежат выше и ниже главной и побочной диагоналей.
Кто чем может. Будем благодарны

-------
Мой блог Web Development


Отправлено: 23:23, 21-05-2009

 
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Цитата Artem-Samsung:
Заполнить матрицу случайными числами »
Сделай поиск - примеров на форуме масса.
Цитата Artem-Samsung:
Отобразить симметрично относительно горизонтальной оси секторы матрицы, которые лежат выше и ниже главной и побочной диагоналей. »
то есть транспонировать? Напиши формулу, что имеется ввиду
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:33, 22-05-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


pva если я правильно понял Artem-Samsung'а то вывести нужно

точно осталось белым, а в результате должно получится что-то типа этого

элементы отмеченные зелённым будут ответом.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:02, 22-05-2009 | #3


Аватара для Artem-Samsung

Ветеран


Сообщения: 823
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Admiral, друг подтвердил, именно так.

-------
Мой блог Web Development


Отправлено: 13:35, 23-05-2009 | #4


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Artem-Samsung, если друг использует Borland (Turbo) C++ 3.0, тогда вот исходник к программе, скрин выполнения которой приведён выше.
Код: Выделить весь код
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
main()
{
clrscr();

const p=71;
int micro[p];
int b=0;

const n=11;
const m=n;
int mas[n][m],i,j;
randomize();

for(i=0;i<n;i++)
 for(j=0;j<m;j++)
  mas[i][j]=random(10)+10;
  textcolor(2); int key=0;
	printf("---------------------------------The massive is---------------------------------\n");
	for(i=0;i<n;i++)
	{
		for(j=0;j<m;j++)
		{       if (0<=j&&j<n&&i==n-11)
			  {key=1; goto Oper;} 
			if (0<j&&j<n-1&&i==n-10)
			  {key=1; goto Oper;} 
			if (1<j&&j<n-2&&i==n-9)
			  {key=1; goto Oper;} 
			if (2<j&&j<n-3&&i==n-8)
			  {key=1; goto Oper;} 
			if (3<j&&j<n-4&&i==n-7)
			  {key=1; goto Oper;} 
			if (4<j&&j<n-5&&i==n-6)
			  {key=1; goto Oper;} 
			if (3<j&&j<n-4&&i==n-5)
			  {key=1; goto Oper;} 
			if (2<j&&j<n-3&&i==n-4)
			  {key=1; goto Oper;} 
			if (1<j&&j<n-2&&i==n-3)
			  {key=1; goto Oper;} 
			if (0<j&&j<n-1&&i==n-2)
			  {key=1; goto Oper;} 
			if (0<=j&&j<n&&i==n-1)
			  {key=1; goto Oper;} 
		  World: cprintf("    %i ",mas[i][j]);
			textcolor(2);
		}
		printf("\n");
	}
	printf("-------------------------------------------------------------------------------\n");
Oper:if (key==1)
{    micro[b]=mas[i][j];
     b++;
     textcolor(4);
     key=0;
     goto World;
}
int buf[p],k=0;
for (b=0;b<p;b++)
 {textcolor(4);
 cprintf(" %i ",micro[b]);
 if (fmod(micro[b],2)==0)
    {buf[k]=micro[b];k++;}
 }
printf("\n\n %i of ",k);
cprintf("red");
printf(" elements are even \n\n");
for (b=0;b<k;b++)
 {textcolor(6);
 cprintf(" %i ",buf[b]);
 }

int tmp;
for(i=0;i<k-1;i++)
  for(j=i+1;j<k;j++)
   if (buf[i]>buf[j])
   {
    tmp=buf[i];
    buf[i]=buf[j];
    buf[j]=tmp;
   }

printf("\n\n Assort massive \n\n");
for (b=0;b<k;b++)
 {textcolor(1);
 cprintf(" %i ",buf[b]);
 }

return 0;
}
Помимо поставленной задачи выводит ещё какой-то массив, но это уже пускай он сам разбирается, как и пишет отчёт по проге, коза теперь есть.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:33, 23-05-2009 | #5


Аватара для Artem-Samsung

Ветеран


Сообщения: 823
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Admiral,
спасибо!

-------
Мой блог Web Development


Отправлено: 13:14, 24-05-2009 | #6


Аватара для Artem-Samsung

Ветеран


Сообщения: 823
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Можно еще чуток побеспокоить?

Нужна матрица 9 на 9, и что бы не просто цвет подсвечивался, а симетрично цифры проставлялись.

Цитата:
симметрично относительно горизонтальной оси секторы матрицы, которые лежат выше и ниже главной и побочной диагоналей.
Спасибо

http://dc133.file.qip.ru/img/9003427...23.gif?sizeM=3

-------
Мой блог Web Development


Отправлено: 21:30, 01-06-2009 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Лабораторная. Работа с массивами

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Как правильно работать с массивами oRaVeNo Программирование и базы данных 13 06-07-2010 06:41
Perl. Работа с массивами. simon171078 Вебмастеру 2 09-01-2007 16:19
Работа БП Surround Хочу все знать 5 05-03-2006 21:40
Работа ХР с CD LamerOK Microsoft Windows 2000/XP 8 17-04-2004 23:51
C/C++ - Лабораторная работа ustrel Программирование и базы данных 13 04-04-2003 00:22




 
Переход