![]() |
|
|
#1
|
|||
|
|||
|
Ребята, понимаю, что для вас это смешно до слёз, но мне не очень. Сессия на носу, я только перевелась в этот коллежд, и попала (не было мест на другие направления) на программирование, хотя хотела немного на другое направление. В общем, есть три маленьких лабораторных работы по программированию. Если вы мне поможете, то надеюсь с помощью гугла я смогу разобрать в вашем коде каждую буковку, каждую функцию и наконец-то пойму что к чему!
Вот первая лаба: дано: n, a[n]. Найти: S= n-1(это над знаком эпсилон), епсилон, i=0 (это под эпсилон), "a" с индексом i. Надеюсь понятно описала формулу. Стыдно до ужаса, но совершенно не понимаю, ЧТО здесь нужно сделать. Вторая лаба - дано: n. Получить квадратную матрицу a[n,n]. n=5. Как объяснила преподаватель, чтобы было: 50000 04000 00300 00020 00001 И третья: дано: n,m,p a[n][m], b[m][p] Получить: c=a*b. Преподаватель сказала: для умножения матриц будет три цикла. Помогите, пожалуйста ![]() |
|
#2
|
||||
|
||||
|
Цитата:
Такая формула?: ![]() Цитата:
Код:
const
n = ???;
var
a: array[0..n - 1] of Integer;
S, i: Integer;
begin
.....
S := 0;
for i := 0 to n - 1 do
begin
S := S + a[i];
end;
.....
end;Цитата:
Код:
const
n = 5;
var
a: array[1..n, 1..n] of Integer;
i, j: Integer;
begin
.....
for i := 1 to n do
begin
for j := 1 to n do
begin
if i = j then a[i, j] := n - i + 1 else a[i, j] := 0;
end;
end;
.....
end;Цитата:
![]() |
|
#3
|
|||
|
|||
|
Вот моя старая реализация умножений матриц на VB. Отрыл в архивах. По идее рабочая, но на всякий случай 1 раз стоит пересчитать на бумажке.
Код:
For p = 1 To mA
For k = 1 To nB
For j = 1 To nA
C(p, k) = C(p, k) + A(p, j) * B(j, k)
Next j
Next k
Next pНу, поменять имена переменных надо будет. nA - количество строк в матрице А, mA - количество столбцов. |
|
#4
|
|||
|
|||
|
Полисмен, я переписала первую задачу, но Делфи выдаёт ошибку. Простите, я пока ничего толком не понимаю, но разбираться с этим приходится, не сочтите за наглость :стыдно:
|
|
#5
|
||||
|
||||
|
Цитата:
|
|
#6
|
|||
|
|||
|
Цитата:
По второй задаче не получается вывести матрицу, получается просто число "66" ![]() Последний раз редактировалось Guneska, 18.11.2012 в 00:58. |
|
#7
|
|||
|
|||
|
Цитата:
поставь write после if'а и writeln после end от цикла по j. Последний раз редактировалось nixel, 19.11.2012 в 11:02. |
|
#8
|
||||
|
||||
|
Цитата:
Код:
for i := 1 to n do
begin
for j := 1 to n do
begin
if i = j then a[i, j] := n - i + 1 else a[i, j] := 0;
Write(a[i, j]);
end;
Writeln;
end; |
|
#9
|
|||
|
|||
|
такая мелочь, и такое значение имеет! Спасибо, ребята!
|
|
#10
|
|||
|
|||
|
Цитата:
Так как Вы предлаете не получается, видимо я полная идиотка, но разбираться с этим приходится, и я вышла до дакого кода, но почему выводятся только нули и только по нажатию Enter? program Project2; Код:
{$APPTYPE CONSOLE}
uses
SysUtils;
const
n=2;
m=2;
p=2;
var
//Matrica А(n,m)
//Matrica B(m,p)
//Matrica C(n,p)
A : array [1..n, 1..m] of Integer;
B : array [1..m, 1..p] of Integer;
C : array [1..n, 1..p] of Integer;
k,j,v : Integer;
begin
for k := 1 to n do
begin
for j := 1 to m do
begin
for v := 1 to p do
begin
C[k,j] := A[k,v]*B[v,j];
write (C[k,j]);
end;
writeln;
readln;
end;
end;
end.Последний раз редактировалось lmikle, 27.11.2012 в 18:32. |
|
#11
|
|||
|
|||
|
А откуда берутся исходные данные? То есть что именно находится в массивах ДО Вашего умножения?
|
|
#12
|
|||
|
|||
|
Цитата:
видимо полная ![]() readln; перед end. должно быть |
|
#13
|
|||
|
|||
|
..........
Последний раз редактировалось Guneska, 27.11.2012 в 22:31. |
|
#14
|
|||
|
|||
|
Цитата:
Условия задачи: дано: n,m,p ; a[n][m], b[m][p] Получить: c=a*b |
|
#15
|
|||
|
|||
|
Цитата:
Неужели Вы только родились и сразу начали программировать? Гений! Последний раз редактировалось Guneska, 27.11.2012 в 23:00. |