Я поправил пост, в 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. Исправил вам свою ошибку в процедуре ввода, и переставил один энд в положенное место. Проверяйте Я сам сейчас не могу написать, время позднее. Ваш вариант довольно легок. Да и вы все-таки должны разобраться |
Часовой пояс GMT +4, время: 08:49. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.