![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Прошу помочь написать текст программы под дельфи.
Задание 1: Заполнить массив случайными целыми двузначными числами. Вывести на экран. Обнаружить максимальный среди элементов с четными номерами. Задание 2: Заполнить массив. Удалить все рядом стоящие четные элементы. Заранее спасибо. |
#2
|
|||
|
|||
![]() Извиняюсь за название темы. (Прошу помогите-является не сутью темы)
Вот что примерно сделал по первой, но тут ошибки в коде и не выделяет то, что нужно( Код:
procedure TForm1.Button1Click(Sender: TObject); Var A:array [1..60] of integer; B:integer; w,m,i,j:byte; begin Randomize; Form1.Refresh; M:=strtoint(edit1.Text); for i:=1 to 60 do begin A[i]:=Random(89)+10; w:=trunc((i-1)/m); Canvas.TextOut((i-w*m)*35, (w-1)*35, inttostr(a[i])); end; B:=a[1]; j:=1; for i:=2 to 60 do if a[i]>b and not odd(i) then begin B:=A[i]; J:=i end; Edit2.Text:=inttostr(j); w:=trunc((j-1)/m); Canvas.Pen.color:=clred; Canvas.Rectangle((j-w*m)*35, (w+1)*35+60, (j-w*m)*35+30, (w+1)*35+63); end; end. Последний раз редактировалось Admin, 18.10.2011 в 20:56. |
#3
|
||||
|
||||
![]() Немного изменил код и вывод делается в TImage, чтобы не было случайного стирания информации при перекрытии другими окнами или сворачивании:
Код:
unit Unit17; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Edit2: TEdit; Image1: TImage; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} uses Math; procedure TForm1.Button1Click(Sender: TObject); var Buf : array[0..59] of Integer; I, J, B, X, Y, Col, Row : Integer; function NumberExists(Value : Integer) : Boolean; var I : Integer; begin Result := False; for I := Low(Buf) to High(Buf) do if Buf[i] = Value then begin Result := True; Break; end; end; begin Randomize; Image1.Canvas.Brush.Color := clWhite; Image1.Canvas.FillRect(Image1.ClientRect); Col := StrToInt(edit1.Text); I := 0; FillChar(Buf, SizeOf(Buf), 0); // Заполним массив неповторяющимися числами while I <= High(buf) do begin B := Random(90) + 10; if NumberExists(B) then Continue else begin Buf[i] := B; inc(I); end; end; // найти максимальное число B := 0; for I := Low(Buf) to High(Buf) do if not odd(I) then B := Max(Buf[i], B); Edit2.Text := IntToStr(B); // Вывод Row := (High(Buf) + 1) div Col; for I := 0 to Row - 1 do for J := 0 to Col - 1 do begin Image1.Canvas.Font.Color := clBlack; if Buf[I * Col + J] = B then Image1.Canvas.Font.Color := clGreen; Image1.Canvas.TextOut(J * 35 + 10, I * 35 + 10, IntToStr(Buf[I * Col + J])); if Buf[I * Col + J] = B then begin X := J * 35 + 10; Y := I * 35 + 10; Image1.Canvas.Pen.Color := clRed; Image1.Canvas.Brush.Style := bsClear; Image1.Canvas.Rectangle(X - 6, Y - 4, X + 18, Y + 18); Image1.Canvas.Brush.Style := bsSolid; end; end; end; end. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#4
|
|||
|
|||
![]() Спасибо, очень помогли, вот что думаю по второй, но тоже не робит что-то(
Код:
procedure TForm1.Button1Click(Sender: TObject); Var w,m,l,i,j,k:byte; A:array [1..60] of integer; z:boolean; begin Randomize; Form1.Refresh; m:=strtoint(edit1.text); for i:=1 to 60 do begin A[i]:=random(89)+10; w:=trunc((i-1)/m); Canvas.TextOut((i-w*m)*35, (w-1)*35, inttostr(a[i])); end; Z:=false; if odd(a[60]) then begin a[60]:=1; z:=True end; K:=0; repeat l:=0; for i:=1 to 60 do if odd(a[i]) then begin for j:=i to 60 do a[j]:=a[j+1]; k:=k+1; l:=1 end; Until l=0; if z then k:=k+1; For i:=1 to (60-k) do w:=trunc((i-1)/m); Canvas.TextOut((i-w*m)*35+60, (w-1)*35+63, inttostr(a[j])); end; lmikle: Код выделяется с помощью тега [ code ] (пробелы убрать). Не очень знал как выделить этот текст кодом, так что выделил цитатой, прошу прощения за неполное соблюдение правил. Последний раз редактировалось lmikle, 20.10.2011 в 03:14. |
#5
|
||||
|
||||
![]() Для начала вам следует понять тот пример, что я привёл выше. Такое ощущение, что вы его проверили и успокоились не удосужившись разобраться что там и как. Иначе как понять, что вы опять пишите какую-то, извините за выражение, хрень?
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |