22.12.2011, 16:21 | #1 (permalink) |
Новичок
Регистрация: 22.12.2011
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите решить
Пусть дана прямоугольная матрица.Организовать движение курсора вдоль выбранной строки или вдоль выбранного столбца с накопление суммы из пройденных курсором элементов.Смещение на 1 элемент производится после нажатия заранее выбранной клавиши. |
22.12.2011, 16:21 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Я уверен, что в этих обсуждениях вы найдете решение Помогите решить Помогите решить Помогите решить |
22.12.2011, 16:57 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Увы, есть такая закономерность: чем тщательнее Вы будете хранить тайну языка программирования, на котором нужно сделать задание, тем меньше шансов на то, что Вам кто-нибудь поможет. Проверено годами. А на экстрасенсов надежды мало - совсем от рук отбились, шляются неизвестно где...
|
23.12.2011, 15:58 | #3 (permalink) |
Новичок
Регистрация: 22.12.2011
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
я сама вот пробовала решать и вот что у меня получилось:
program Lab8; usese crt; type matrix=array[1..10,1..10] of integer; var a:matrix; i,j,n,x,y:byte; ch:char; procedure vvod(var ma:matrix; n:integer); var i,j:integer; begin for i:=1 to n do for j:=1 to n do ma[i,j]:=random(10); end; procedure print(ma:matrix; n:integer); var i,j:integer; begin for i:=1 to n do for j:=1 to n do write(ma[i,j]:2); writeln; end; begin clrscr; x:=1;y:=1; write('vvedite razmer kvadratnoy matrix: '); readln(n); if n>10 then n:=10; vvod (a,n) ; print (a,n) ; gotoxy(1,1) ;x:=1 ;y:=1; while true do begin ch:=readkey; if ch=#0 then begin if ch=#79 then exit; if (ch=#77) and (x<2*n) then begin x:=x+2;gotoxy(x,y) end; if (ch=#75) and (x>2) then begin x:=x-2;gotoxy(x,y) end; if (ch=#72) and (y>n/4) then begin y:=y-1; gotoxy(x,y) end; if (ch=#80) and (y<11) then begin y:=y+1; gotoxy(x,y) end; end; end; помогите мне исправить ошибки и как мне сумму вычислить?? |
23.12.2011, 21:32 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Помогаю. Исправил. Вот так (выход я сделал по Esc):
Код:
uses crt; type matrix=array[1..10,1..10] of integer; var a:matrix; i,j,n,x,y:byte; Sum:Word; ch:char; procedure vvod(var ma:matrix; n:integer); var i,j:integer; begin for i:=1 to n do for j:=1 to n do ma[i,j]:=random(10); end; procedure print(ma:matrix; n:integer); var i,j:integer; begin clrscr; for i:=1 to n do begin for j:=1 to n do write(ma[i,j]:2); writeln; end; writeln; end; Procedure Calc_Sum; var xs,ys:byte; begin if (x mod 2)=0 then begin xs:=x; ys:=y; gotoxy(1,n+1); Sum:=Sum+a[y,(x div 2)]; write('Sum= ',Sum:3); x:=xs; y:=ys; gotoxy(x,y); end; end; BEGIN clrscr; x:=1; y:=1; write('vvedite razmer kvadratnoy matrix: '); readln(n); if n>10 then n:=10; vvod(a,n); print(a,n); Sum:=0; gotoxy(1,n+1); write('Sum= ',Sum:3); gotoxy(1,1); x:=1; y:=1; while true do begin ch:=readkey; if ch=#27 then exit; if (ch=#77) and (x<2*n) then begin x:=x+1; gotoxy(x,y); Calc_Sum; end; if (ch=#75) and (x>1) then begin x:=x-1; gotoxy(x,y); Calc_Sum; end; if (ch=#72) and (y>1) then begin y:=y-1; gotoxy(x,y); Calc_Sum; end; if (ch=#80) and (y<n) then begin y:=y+1; gotoxy(x,y); Calc_Sum; end; end; END. |
25.12.2011, 23:38 | #5 (permalink) |
Новичок
Регистрация: 22.12.2011
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо вам большое!!!!)))
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|