|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.12.2010, 21:26 | #1 |
Пользователь
Регистрация: 11.12.2010
Сообщений: 43
|
Рассчет суммы цифр чисел элементов, расположеных по кромке матрицы
Помогите создать массив, элемнты которого равны сумме цифр чисел, расположеных по кромке случайно заполненой матрицы.
Вот моя функция и процедура, но они считают кол-во цифр чисел, а надо сумму цифр этих чисел. Кто знает, прошу помочь. Горю... function Cifr(n:integer):integer; var k:integer; begin k:=0; while n>0 do begin k:=k+1; n:=n div 10; end; result:=k; end; procedure ElementToArr(M:TMatr;nCol,nRow:inte ger;var A:TArr); var i,j,k,n,cnt,l:integer; begin cnt:=0; for i:=1 to nCol do begin inc(cnt); A[cnt]:=M[1,i]; end; for j:=2 to nRow do begin inc(cnt); A[cnt]:=M[j,nCol]; end; for k:=1 to nCol-1 do begin inc(cnt); A[cnt]:=M[nRow,k]; end; for n:=2 to nRow-1 do begin inc(cnt); A[cnt]:=M[n,1]; end; for l:=1 to cnt do begin A[l]:=Cifr(A[l]); end; end; |
21.12.2010, 21:33 | #2 |
Форумчанин
Регистрация: 23.11.2010
Сообщений: 458
|
а можно весь код
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
|
21.12.2010, 21:36 | #3 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
Бред, если это ваши исходники, то кое где написав k := k + (n mod 10) вместо вашего k := k + 1 вы бы получили сумму цифр.
Не нужно никого обманывать. Мы не лохи тут, всё понимаем. Откуда и чей это код. |
21.12.2010, 21:38 | #4 |
Пользователь
Регистрация: 11.12.2010
Сообщений: 43
|
Да,конечно.
unit UnitMatrDop; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls, ExtCtrls; type TMatr=array[1..10,1..10]of integer; TArr=array[1..100]of integer; procedure MakeMatrWithRandom(var M:TMatr;nCol,nRow:integer); procedure ShowMatrInSG(const M:TMatr;nCol,nRow:integer;StringGri d1:TStringGrid); procedure GetMatrFromSG(var M:TMatr;var nCol,nRow:integer;StringGrid1:TStri ngGrid); procedure OborotVertical(var M:TMatr; nCol,nRow:integer); procedure ElementToArr(M:TMatr;nCol,nRow:inte ger;var A:TArr); procedure ShowArrInMemo(const A:TArr;Memo1:TMemo;nCol,nRow:intege r); function Cifr(n:integer):integer; procedure KoorEl (e:integer;var M:TMatr; nCol,nRow:integer;StringGrid1:TStri ngGrid; var i1,j1:integer); implementation procedure MakeMatrWithRandom(var M:TMatr;nCol,nRow:integer); var i,j:integer; begin randomize; for i:=1 to nRow do for j:=1 to nCol do M[i,j]:=random(26); end; procedure ShowMatrInSG(const M:TMatr;nCol,nRow:integer;StringGri d1:TStringGrid); var i,j:integer; begin StringGrid1.ColCount:=nCol; StringGrid1.RowCount:=nRow; for i:=1 to nRow do for j:=1 to nCol do StringGrid1.Cells[j-1,i-1]:=inttostr(M[i,j]); end; procedure GetMatrFromSG(var M:TMatr;var nCol,nRow:integer;StringGrid1:TStri ngGrid); var i,k:integer; begin nCol:=StringGrid1.ColCount; nRow:=StringGrid1.RowCount; for k:=1 to nRow do for i:=1 to nCol do M[k,i]:=strtoint(StringGrid1.Cells[i-1,k-1]); end; procedure OborotVertical(var M:TMatr; nCol,nRow:integer); var i,j:integer; begin for i:=1 to nRow do for j:=1 to nCol div 2 do begin M[i,j]:=M[i,nCol-j+1]+M[i,j]; M[i,nCol-j+1]:=M[i,j]-M[i,nCol-j+1]; M[i,j]:=M[i,j]-M[i,nCol-j+1]; end; end; function Cifr(n:integer):integer; var k:integer; begin k:=0; while n>0 do begin k:=k+1; n:=n div 10; end; result:=k; end; procedure ElementToArr(M:TMatr;nCol,nRow:inte ger;var A:TArr); var i,j,k,n,cnt,l:integer; begin cnt:=0; for i:=1 to nCol do begin inc(cnt); A[cnt]:=M[1,i]; end; for j:=2 to nRow do begin inc(cnt); A[cnt]:=M[j,nCol]; end; for k:=1 to nCol-1 do begin inc(cnt); A[cnt]:=M[nRow,k]; end; for n:=2 to nRow-1 do begin inc(cnt); A[cnt]:=M[n,1]; end; for l:=1 to cnt do begin A[l]:=Cifr(A[l]); end; end; procedure ShowArrInMemo(const A:TArr;Memo1:TMemo;nCol,nRow:intege r); var i:integer; begin Memo1.Clear; for i:=1 to (2*nCol+2*nRow-4) do Memo1.Lines.Add(inttostr(A[i])); end; procedure KoorEl (e:integer;var M:TMatr; nCol,nRow:integer;StringGrid1:TStri ngGrid; var i1,j1:integer); var i,j:integer; begin i1:=0; j1:=0; for i:=1 to nRow do for j:=1 to nCol do if M[i,j]=e then begin i1:=i;j1:=j; end; end; end. |
21.12.2010, 21:41 | #5 |
Форумчанин
Регистрация: 23.11.2010
Сообщений: 458
|
На этом форуме , таких умных студентов 99%
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
|
21.12.2010, 21:44 | #6 |
Форумчанин
Регистрация: 23.11.2010
Сообщений: 458
|
1. Код желательно заключать в специальные теги
2. тебе уже дали ответ на твой вопрос . 3. Если это не твой код , то сперва разберись в нем сам , а потом проси помощи ! Спасибо !
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
|
21.12.2010, 21:47 | #7 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
|
21.12.2010, 21:58 | #8 |
Форумчанин
Регистрация: 23.11.2010
Сообщений: 458
|
Думаю , что он ждет готовый код ... Может он болел
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
суммы элементов верхней треугольной матрицы ? | shark2010 | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 16.09.2010 00:10 |
Рассчет суммы чисел в эдитах по клику на кнопке | Артеммм | Помощь студентам | 20 | 26.02.2009 00:18 |
Вычислить и запомнить суммы положительных элементов каждой строки матрицы | kiko | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 13.12.2008 17:32 |
Найти отношения суммы элементов главной диагонали и суммы элементов побочной диагонали квадратной матрицы | Elmander | Помощь студентам | 2 | 21.06.2007 07:15 |