Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Нужна помощь в задаче! Пожалуйста, надо сдать! (http://www.tehnari.ru/f41/t35873/)

Строитель 09.05.2010 23:01

Нужна помощь в задаче! Пожалуйста, надо сдать!
 
Даны натуральное число n, действительная матрица размера n9. найти средне арифметическое:
а) каждого из столбцов;
б) каждого из столбцов, имеющих чётные номера.

ЕСЛИ НЕ СЛОЖНО ТО ПРОГРАММУ НАПИСАТЬ ПОЛНОСТЬЮ С НАЧАЛА!!!!!ПОЖАЛУЙСТА!!!!:tehnari_ru_121::tehnari_ ru_121::tehnari_ru_121::tehnari_ru_121:

MrSTEP 09.05.2010 23:08

1) что есть
Цитата:

n9
?
2) а почему бы вам самим не попробовать? что не получится, мы подскажем

Строитель 09.05.2010 23:11

Цитата:

Сообщение от MrSTEP (Сообщение 332441)
1) что есть ?
2) а почему бы вам самим не попробовать? что не получится, мы подскажем

я уже вот пробую но он постоянно выводит ошибки могу прслать то что у меня получилоь!!!!

MrSTEP 09.05.2010 23:13

выкладывайте

Строитель 09.05.2010 23:16

Program bukvaa;
uses crt;
const m=9;
var i,j,n:integer;
a:array[1..m,1..n] of real;
begin
clrscr;
writeln('hghjghjg');
writeln;
randomize;
for i:=1 to n do begin
s:=0;
for j:=1 to m do
s:=s+a[m,n];
s:s/m;
writeln('ghfghfghf',i,'knbkbn',s);
end.

строго не судите я просто мало понимаю эту тему(((

Строитель 09.05.2010 23:18

а на счет n9 это выглядит так nx9

MrSTEP 09.05.2010 23:24

1) a:array[1..m,1..n] of real;
так нельзя обявлять размер массива. N должна быть константой, либо постоянным числом. Замените на:
a:array[1..m,1..20] of real;
2) переменная s должна быть описана как вещественный тип, т.к. для нее будет применяться деление:
s:real;
3) s:s/m;
В операции присваивания пропущен знак =. Должно быть так:
s:=s/m;
4) у вас отсутствует задание (ввод) массива и числа n
5) for i:=1 to n do begin
у вас нет закрывающейся операторной скобки для выделенного begin'a. Поставьте его после
writeln('ghfghfghf',i,'knbkbn',s);

да и вообще, выводить лучше осмысленный текст, дабы было понятно, что программа выводит

Строитель 09.05.2010 23:27

спасибо щас попробую исправить

Строитель 09.05.2010 23:36

вот 4 пункт не могу сообразить что куда !!!!

Строитель 09.05.2010 23:37

вот что получилось

Program bukvaa;
uses crt;
const m=9;
n=10;
var i,j:integer;
s:real;
a:array[1..m,1..n] of real;
begin
clrscr;
writeln('fdgf');
writeln;
randomize;
for i:=1 to n do begin
s:=0;
for j:=1 to m do
s:=s+a[m,n];
s:=s/m;
writeln('ghfghfghf',i,'knbkbn',s);
readln
end;
end.

MrSTEP 09.05.2010 23:44

Я поправил пост, в 4ом пункте скобка не там стояла. Массив у вас не задан - все элементы в нем нули. Массив поэлементно либо вводится с клавиатуры, либо задается функцией random. Если она не используется, то процедура randomize абсолютно лишняя в программе

Строитель 10.05.2010 00:01

Program bukvaa;
uses crt;
const m=9;
n=10;
var i,j:integer;
s:real;
a:array[1..m,1..n] of real;
begin
clrscr;
writeln('vvedite kolichestvo stolbzov');
writeln;
for i:=1 to n do begin

s:=0;
for j:=1 to m do
s:=s+a[m,n];
s:=s/m;
writeln('srednee arifmeticheskoe elementov ',i,' stolbza',s);
readln
end;
end.

вроде написал но не пойму почему не работает как надо((

MrSTEP 10.05.2010 00:10

Нули выводит? Логично, у вас в программе отсутствует ввод массива, поймите вы наконец. Если массив не введен, то в памяти по умолчанию выставляются нули.
Далее, вы пишете: 'введи количество столбцов'. Если вы хотите, что бы программа прочитала что-то с клавиатуры, должны поставить оператор readln. Но количество столбцов n у вас уже задано константой. Вы можете: сделать n переменной, размер массива задать как число ~20-30, больше врядли будете вводить, и организовать ввод n; либо отказаться от ввода количества строк с клавиатуры.
И обязательно сделать ввод массива

Строитель 10.05.2010 00:12

1)да выводит нули
2)как сделать ввод массива ?

MrSTEP 10.05.2010 00:20

Ну как обычно вводится массив? В цикле. А двумерный массив вводится во вложенном цикле. Вот ваш фрагмент:
writeln('Type the array by a string and press Enter key'); //введи массив по строкам и нажми клавишу Энтер
for i:=1 to n do begin
for j:=1 to m do
read(a[i,j]);
readln;
end;

Строитель 10.05.2010 00:33

Спасибо большое что отозвались на помощь!!!!!!Но я все равно делаю видимо не так и он все время выводит нули(((
просто не охота вас доставать!!!!

MrSTEP 10.05.2010 00:36

Ничего страшного, я привык :) Вы еще хороший ученик :) Давайте уже всю программу, будем править

Строитель 10.05.2010 00:41

Program bukvaa;
uses crt;
const m=9;
n=10;
var i,j:integer;
s:real;
a:array[1..m,1..n] of real;
begin
clrscr;
writeln;
writeln;
randomize;
writeln('vvedite massiv po strokam');
for i:=1 to n do begin
for j:=1 to m do
read(a[i,j]);
readln;
for i:=1 to n do begin

s:=0;
for j:=1 to m do
s:=s+a[m,n];
s:=s/m;
writeln('srednee arifmeticheskoe elementov ',i,' stolbza',s);
readln
end;
end;
end.

Строитель 10.05.2010 00:44

написали бы её сами и не мучилась бы с объяснениями!!да и мне может попроще так бы было

MrSTEP 10.05.2010 00:47

Program bukvaa;
uses crt;
const m=9;
n=10;
var i,j:integer;
s:real;
a:array[1..m,1..n] of real;
begin
clrscr;
writeln;
writeln;
randomize;
writeln('vvedite massiv po strokam');
for i:=1 to m do begin
for j:=1 to n do
read(a[i,j]);
readln;
end;
for i:=1 to n do begin

s:=0;
for j:=1 to m do
s:=s+a[m,n];
s:=s/m;
writeln('srednee arifmeticheskoe elementov ',i,' stolbza',s);
readln
end;
end.

Исправил вам свою ошибку в процедуре ввода, и переставил один энд в положенное место. Проверяйте

Я сам сейчас не могу написать, время позднее. Ваш вариант довольно легок. Да и вы все-таки должны разобраться

Vladimir_S 10.05.2010 08:35

Дублирующий запрос из чужой темы http://www.tehnari.ru/f41/t32005/ удален.
Модератор.

Строитель 12.05.2010 09:45

Здравствуйте !!!!Я опять со своей задачей!!!!!два дня вас не беспокоил но вижу сам не справлюсь я не могу закончить программу(((кто нибудь может написать мне её от начала до конца пожалуйста!!!!!мне завтра сдавать (((БУДУ ОЧЕНЬ ПРИЗНАТЕЛЕН!!!!

ЗАДАНИЕ МОЖЕТЕ УВИДЕТЬ ВЫШЕ,А ТАКЖЕ НЕ ПОЛНУЮ ВЕРСИЮ ПРОГРАММЫ.

Vladimir_S 12.05.2010 12:00

Цитата:

Сообщение от Строитель (Сообщение 333426)
Здравствуйте !!!!Я опять со своей задачей!!!!!два дня вас не беспокоил но вижу сам не справлюсь я не могу закончить программу(((кто нибудь может написать мне её от начала до конца пожалуйста!!!!!мне завтра сдавать (((БУДУ ОЧЕНЬ ПРИЗНАТЕЛЕН!!!!

ЗАДАНИЕ МОЖЕТЕ УВИДЕТЬ ВЫШЕ,А ТАКЖЕ НЕ ПОЛНУЮ ВЕРСИЮ ПРОГРАММЫ.

Ладно. Только вот что. Обозначения я использовал те, к которым привык, а именно:
1. Параметры i и n относятся к СТРОКАМ.
2. Параметры j и m относятся к СТОЛБЦАМ.
3. Обозначение матрицы n x m и, соответственно, массива A[1..n,1..m] означает n строк и m столбцов.
Код:

Program bukvaa;
uses crt;
const
 n=10;
 m=9;
var i,j:integer;
 s:real;
 a:array[1..n,1..m] of real;

begin
 clrscr;
 writeln('vvedite massiv');
 for i:=1 to n do
  for j:=1 to m do
    begin
    Write('a[',i,',',j,']= ');
    ReadLn(a[i,j]);
    end;
 writeln;

 for i:=1 to n do
  begin
  for j:=1 to m do
    Write(a[i,j]:8:3);
  writeln;
  end;
 WriteLn('Press "Enter" to continue');
 ReadLn;

  for j:=1 to m do
  begin
    s:=0;
    for i:=1 to n do
    s:=s+a[i,j];
    s:=s/n;
    writeln('srednee arifmeticheskoe elementov ',j,' stolbza',s:8:3);
  end;
 WriteLn('Press "Enter" to continue');
 ReadLn;

  for j:=1 to (m div 2) do
  begin
    s:=0;
    for i:=1 to n do
    s:=s+a[i,2*j];
    s:=s/n;
    writeln('srednee arifmeticheskoe elementov ',2*j,' stolbza',s:8:3);
  end;
 ReadLn;
end.


Строитель 12.05.2010 18:34

Огромное Вам СПАСИБО!!!!!!

Строитель 12.05.2010 18:36

А не знаете кто мог бы помочь с блок схемами?

MrSTEP 12.05.2010 18:54

А какое задание для схемы?

Строитель 12.05.2010 21:51

задание одно это же другое я сам написал но со схемами у меня вообщем беда((

kazax 12.05.2010 21:55

помогите с написанием программы по массивамнадо сдать

MrSTEP 12.05.2010 22:11

Цитата:

задание одно это же другое
Строитель, как это понимать? давайте задание, завтра к вечеру может сделаю.
kazax, создайте свою тему, и опишите задание полностью, Телепат с форума уволился

kazax 12.05.2010 22:23

MrSTEP я создал свою тему и задание выклал ,можете посмотреть и подсказать?

MrSTEP 12.05.2010 22:25

если найду и пойму, что вы там наклали, то подскажу

Строитель 12.05.2010 22:26

щас будет тексты программ

Строитель 12.05.2010 22:29

program zadacha1;
uses crt;
const n=10;
var i:integer;
q:array [1..n] of integer;
begin
clrscr;
randomize;
writeln ('lybie 10 chisel');
for i:=1 to n do begin q[i]:=random (100);
write (q[i],' ');
end;
writeln;
writeln ('iz nih nugnie');
for i:=1 to n do
if (q[i] mod 2=0) and (q[i] mod 4<>0) then
write (q[i],' ');
readln
end.

ии....

Program bukvaa;
uses crt;
const n=10;
m=9;
var i,j:integer;
s:real;
a:array[1..n,1..m] of real;
begin
clrscr;
writeln('vvedite massiv');
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i,',',j,']= ');

readln(a[i,j]);
end;
writeln;
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:6:2);
writeln;
end;
writeln('nagmite "Enter" ');
readln;
for j:=1 to m do
begin
s:=0;
for i:=1 to n do
s:=s+a[i,j];
s:=s/n;
writeln('srednee arifmeticheskoe elementov ',j,' stolbza',s:6:2);
end;
readln;
end.(отдельное спасибо за эту программу Vladimir S)

MrSTEP 12.05.2010 22:33

Попробую разобрать и сделать. У меня есть сутки?

Строитель 12.05.2010 22:35

до завтра это крайний срок(((

если вы не будете против я тоже буду пытаться сделать,потом сверю с вашим если у меня что получиться???

MrSTEP 13.05.2010 17:49

Цитата:

Сообщение от Строитель (Сообщение 333697)
до завтра это крайний срок(((

если вы не будете против я тоже буду пытаться сделать,потом сверю с вашим если у меня что получиться???

конечно не против, даже за. Сейчас сделаю

MrSTEP 13.05.2010 18:49

Вложений: 2
Готово. Во второй задаче опустил вывод массива сразу после ввода

Строитель 16.05.2010 12:13

СПАСИБО!!!!!!!!

Строитель 20.05.2010 19:55

Помогите в решении еще двух задач пожалуйста!!!

Даны целые числа а1,…,а50. Получить последовательность b1,…,b50, которая отличается от исходной тем, что все члены удвоены.

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

AlexZir 21.05.2010 05:53

Даны целые числа а1,…,а50. Получить последовательность b1,…,b50, которая отличается от исходной тем, что все члены удвоены.
Код:

program mas1;
uses crt;
var a: array[1..50] of integer;
    b: array[1..50] of integer;
    i,p:integer;
begin
randomize;
writeln('Выберите способ заполнения массива (1-авто, 2-вручную)');
repeat
read(p);
until (p=1) or (p=2);
for i:=1 to 50 do begin
if p=1 then a[i]:=random(40) else read(a[i]);
b[i]:=2*a[i];
end;
writeln;
writeln('a[i]      b[i]');
for i:=1 to 50 do begin
writeln(a[i]:5, b[i]:5);
end;
readln;
end.



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

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.