• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Нужна помощь в задаче! Пожалуйста, надо сдать!

Строитель

Новые
Регистрация
9 Май 2010
Сообщения
21
Реакции
0
Баллы
0
Нужна помощь в задаче! Пожалуйста, надо сдать!

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

ЕСЛИ НЕ СЛОЖНО ТО ПРОГРАММУ НАПИСАТЬ ПОЛНОСТЬЮ С НАЧАЛА!!!!!ПОЖАЛУЙСТА!!!!:tehnari_ru_121::tehnari_ru_121::tehnari_ru_121::tehnari_ru_121:
 
1) что есть ?
2) а почему бы вам самим не попробовать? что не получится, мы подскажем

я уже вот пробую но он постоянно выводит ошибки могу прслать то что у меня получилоь!!!!
 
выкладывайте
 
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.

строго не судите я просто мало понимаю эту тему(((
 
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);

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

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

вроде написал но не пойму почему не работает как надо((
 
Нули выводит? Логично, у вас в программе отсутствует ввод массива, поймите вы наконец. Если массив не введен, то в памяти по умолчанию выставляются нули.
Далее, вы пишете: 'введи количество столбцов'. Если вы хотите, что бы программа прочитала что-то с клавиатуры, должны поставить оператор readln. Но количество столбцов n у вас уже задано константой. Вы можете: сделать n переменной, размер массива задать как число ~20-30, больше врядли будете вводить, и организовать ввод n; либо отказаться от ввода количества строк с клавиатуры.
И обязательно сделать ввод массива
 
1)да выводит нули
2)как сделать ввод массива ?
 
Ну как обычно вводится массив? В цикле. А двумерный массив вводится во вложенном цикле. Вот ваш фрагмент:
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;
 
Спасибо большое что отозвались на помощь!!!!!!Но я все равно делаю видимо не так и он все время выводит нули(((
просто не охота вас доставать!!!!
 
Ничего страшного, я привык :) Вы еще хороший ученик :) Давайте уже всю программу, будем править
 
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.
 
написали бы её сами и не мучилась бы с объяснениями!!да и мне может попроще так бы было
 
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.

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

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