Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2009, 19:10   #1
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию пару вопросов по масивам в паскале и С++

народ помогити вот в этом коде сделать так чтобы в масив B выводились среднии значения из столбов масива А в строку:
#include<iostream.h>
int main(){
int A[6][6],B[5],i,j,m;
m=0;
for (i=1; i<6; i++)
for (j=1; j<6; j++)
cin>>A[i][j];
for (i=1; i<6; i++)
{
for (j=1; j<6; j++)
cout<<A[i][j];
cout<<endl;
}
for(j=1; j<6; j++)
{
m=0;
for(i=1; i<6; i++)
m+=A[i][j];
cout<<"sum "<<j<<" stolba="<<m<<endl;
B[i]=m/5;
cout<<B[i]<<endl;
}


}





и подскажити вчём ошибка вот этого кода при написании в паскале? в бэйсике писалось точно также но всё работало...

Program pr1;
var
A:array [1..10] of Integer;
z,m,n,j,i:Integer;
begin
for i:=1 to 10 do
read (A[i]);
for i:=1 to 9 do
m:=A[i];
for j:=i to 10 do
if A[j]<m then
m:=A[j];
k:=j;
z:=A(i);
A[i]:=m;
A[k]:=z;
for i:=1 to 10 do
write (A[i]);
end.

Последний раз редактировалось Lorden; 06.02.2009 в 20:10.
Lorden вне форума Ответить с цитированием
Старый 06.02.2009, 19:45   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

А что делает второй код? И что такое в нем z? Для чего переменная n?
Ну а это вообще шедевр:
m:=A[i];
for j:=i to 10 do
if A[i]<m then
С какого угара a[i] будет меньше m?
Думаю что подобный код и в Бейсике не будет работать.
puporev вне форума Ответить с цитированием
Старый 06.02.2009, 19:54   #3
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

второй код для размещения чисел по порядку в одномерном массиве, ща посмотрю может я неправильно переписал просто
Lorden вне форума Ответить с цитированием
Старый 06.02.2009, 19:56   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Это называется сортировка по убыванию, если надо по возрастанию смени знак< на >
Код:
Program pr1;
uses crt;
var a:array [1..10] of Integer;
    i,j,z:Integer;
begin
clrscr;
writeln('Vvedite 10 elementov massiva:');
for i:=1 to 10 do
read (a[i]);
readln;
for i:=1 to 9 do
for j:=i+1 to 10 do
if a[i]<a[j] then
  begin
    z:=A[i];
    a[i]:=a[j];
    a[j]:=z;
   end;
writeln('Otsortirovannyj massiv:');
for i:=1 to 10 do
write (a[i],' ');
readln;
end.
puporev вне форума Ответить с цитированием
Старый 06.02.2009, 20:12   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Lorden Про первый код.. Так у вас и выводятся в B средние значения (правда, округленные).

Подправил, чтобы выводились вещественные значения.
Ручной ввод поменял на заполнение случайными.

Код:
#include<iostream.h>
#include <conio.h>
#include <time.h>
int main(){
int A[5][5],i,j,m;
double B[5];
srand(time(NULL));
m=0;
for (i=1; i<6; i++)
 {
	for (j=1; j<6; j++)
         {
	A[i][j] = rand()%20+1;
	cout.width(4);
	cout<<A[i][j];
	}
	cout<<endl;
	}
cout<<endl;

for(j=1; j<6; j++)
{
m=0;
for(i=1; i<6; i++)
m+=A[i][j];
cout<<"sum "<<j<<" stolba="<<m<<endl;
B[i]=(double)m/5;
cout<<B[i]<<endl;
}

getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.02.2009, 20:18   #6
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
Это называется сортировка по убыванию, если надо по возрастанию смени знак< на >
Код:
Program pr1;
uses crt;
var a:array [1..10] of Integer;
    i,j,z:Integer;
begin
clrscr;
writeln('Vvedite 10 elementov massiva:');
for i:=1 to 10 do
read (a[i]);
readln;
for i:=1 to 9 do
for j:=i+1 to 10 do
if a[i]<a[j] then
  begin
    z:=A[i];
    a[i]:=a[j];
    a[j]:=z;
   end;
writeln('Otsortirovannyj massiv:');
for i:=1 to 10 do
write (a[i],' ');
readln;
end.
спс, а по коду который я указывал там можете подсказать чё нетак? я его поправил чёток
Lorden вне форума Ответить с цитированием
Старый 06.02.2009, 20:33   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

там все не так, я даже не понимаю, что там написано.
puporev вне форума Ответить с цитированием
Старый 06.02.2009, 20:34   #8
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Lorden Про первый код.. Так у вас и выводятся в B средние значения (правда, округленные).

Подправил, чтобы выводились вещественные значения.
Ручной ввод поменял на заполнение случайными.

Код:
#include<iostream.h>
#include <conio.h>
#include <time.h>
int main(){
int A[5][5],i,j,m;
double B[5];
srand(time(NULL));
m=0;
for (i=1; i<6; i++)
 {
	for (j=1; j<6; j++)
         {
	A[i][j] = rand()%20+1;
	cout.width(4);
	cout<<A[i][j];
	}
	cout<<endl;
	}
cout<<endl;

for(j=1; j<6; j++)
{
m=0;
for(i=1; i<6; i++)
m+=A[i][j];
cout<<"sum "<<j<<" stolba="<<m<<endl;
B[i]=(double)m/5;
cout<<B[i]<<endl;
}

getch();
return 0;
}
не я имел в виду чтоб среднии значения столбцов массива А выводило в массив Б в одной строке примерно так B=l3 4 5 6 7l вот это я немогу понять как сделать( ато выводит после суммы столба среднее значение
Lorden вне форума Ответить с цитированием
Старый 06.02.2009, 20:39   #9
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
там все не так, я даже не понимаю, что там написано.
блин вот в твоём коде всё понятно как описано) а я даже тот код который писал выше немогу корректно написать в бэйсике хотя в колледже смог какимто чудом его написать)
Lorden вне форума Ответить с цитированием
Старый 06.02.2009, 20:40   #10
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Lorden
не я имел в виду чтоб среднии значения столбцов массива А выводило в массив Б в одной строке примерно так B=l3 4 5 6 7l вот это я немогу понять как сделать( ато выводит после суммы столба среднее значение
А.. Ну это просто )
Вместо
Код:
cout<<"sum "<<j<<" stolba="<<m<<endl;
B[i]=(double)m/5;
cout<<B[i]<<endl;
написать
Код:
B[i]=(double)m/5;
cout<<B[i];
Полный код:
Код:
#include<iostream.h>
#include <conio.h>
#include <time.h>
int main(){
int A[5][5],i,j,m;
double B[5];
srand(time(NULL));
m=0;
for (i=1; i<6; i++)
 {
		for (j=1; j<6; j++)
   {
				A[i][j] = rand()%20+1;
				cout.width(4);
				cout<<A[i][j];
			}
		cout<<endl;
	}
cout<<endl;

cout<<"B= ";
for(j=1; j<6; j++)
{
m=0;
for(i=1; i<6; i++)
  m+=A[i][j];
B[i]=(double)m/5;
cout<<B[i]<<"  ";
}
cout<<endl;
getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
пару вопросов по блок-схеме felmor Паскаль, Turbo Pascal, PascalABC.NET 11 03.01.2009 19:00
Пару вопросов по MS Visual C++ 2005 zi0n Visual C++ 8 15.11.2008 18:59
Пару вопросов о DynamicSkinForm Relrin Компоненты Delphi 6 22.04.2008 04:03
Срочно пару вопросов fruTT Общие вопросы Delphi 8 30.10.2007 22:14