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

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Помогите, пожалуйста, с Паскалем. Процедуры-массивы (http://www.tehnari.ru/f43/t52464/)

bastilio 30.05.2011 21:27

Помогите, пожалуйста, с Паскалем. Процедуры-массивы
 
Илья Андреев
это ссылка на условие задачи.
А вот,что у меня получилось.
program lab_6;
const N=5;
M=4;
type mass a=array [1..N,1..M] of real=((3.3,2.8,2.91,8.03),(-5.6,1.01,2.25,5.48),
(-5.4,3.08,6.2,4.85),(3.01,21.8,9.4,-51.4),(6.1,8.2,11.4,13.8));
type mass b=array [1..M] of real =(54.1,25.4,-1.01,6.8);
var a,b:real;
Procedure ProcC(a:massA,b:massB,var c:massB);
i,j:integer;
begin
for i:=1 to N do begin
C[i]:=0;
for j:=1 to M do C[i]:=c[i]+a[i,j]*b[j];
end;
begin
ProcC(c);
writeln (c:8:4, ' c ');
end.

Vladimir_S 30.05.2011 21:39

Получилось, прямо скажем, не очень вразумительно. Сейчас покажу, как надо.

bastilio 30.05.2011 21:52

спасибо)

Vladimir_S 30.05.2011 22:11

А надо вот так.
Только просьба: поскольку у Вас по куче ошибок буквально в каждой строке, то внимательно сверьте два кода. Особое внимание - на то, что относится к типам, а что - к константам (у Вас какая-то жуткая мешанина!), на разделители в параметрах процедуры - точка с запятой, а не запятая, на вызов процедуры ну и, пожалуй, на всё прочее :D.
Код:

program lab_6;
const
 N=5;
 M=4;
type
 mass_a=array [1..N,1..M] of real;
 mass_b=array [1..M] of real;
 mass_c=array [1..N] of real;
const
 a:mass_a=((3.3,2.8,2.91,8.03),(-5.6,1.01,2.25,5.48),
(-5.4,3.08,6.2,4.85),(3.01,21.8,9.4,-51.4),(6.1,8.2,11.4,13.8));
 b:mass_b=(54.1,25.4,-1.01,6.8);

var
 c:mass_c;
 i:integer;

Procedure ProcC(ap:mass_a;bp:mass_b;var cp:mass_c);
var ip,jp:integer;
begin
 for ip:=1 to N do
  begin
  cp[ip]:=0;
  for jp:=1 to M do
    cp[ip]:=cp[ip]+ap[ip,jp]*bp[jp];
  end;
end;

begin
 ProcC(a,b,c);
 For i:=1 to N do
  writeln(c[i]:8:4);
 readln
end.

Если что не понятно - спрашивайте, не стесняйтесь.

bastilio 30.05.2011 22:17

Ну вы мастер.
Огромное спасибо,никогда не видел,что б так быстро проги писали)
а вот в конце он ответ в виде одномерного массива же дает да?)

Vladimir_S 30.05.2011 22:21

Конечно. Так Вы запустите да посмотрите. При этом обратите внимание - размерность массива с равна количеству строк (N) в отличие от массива b (M). Поэтому для с пришлось ввести особый тип.

bastilio 30.05.2011 22:26

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

Vladimir_S 30.05.2011 22:45

Цитата:

Сообщение от bastilio (Сообщение 529424)
благодарю,все разобрался)
А вы курсовики не делаете?тоже по паскалю,только там посложнее)
если да,то сколько стоит?)

Извините - коммерцией не занимаюсь. Чем могу - помогаю, причем безвозмездно. Но за большие работы не берусь: своих дел по горло.
Есть тут... один шустрый... периодически вылезает с репликами "стучите в аську - договоримся", поищите - может быть, наткнетесь. Впрочем, не воспринимайте это как рекомендацию.
А вообще - мой Вам совет: беритесь-ка за ум, пока не поздно. Причем за собственный. Чужим - не проживете, особенно в наше время.

bastilio 30.05.2011 23:02

хорошо,спасибо,постараюсь)


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

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