![]() |
|
#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. |