![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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. |
|
#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
|
||||
|
||||
|
Для начала вам следует понять тот пример, что я привёл выше. Такое ощущение, что вы его проверили и успокоились не удосужившись разобраться что там и как. Иначе как понять, что вы опять пишите какую-то, извините за выражение, хрень?
|