![]() |
|
|
#1
|
|||
|
|||
![]() сдавать надо, сейчас просто разбиратся не могу, 0 в этом,а надо сдать...потом буду сидеть учить,но лучше б чтоб они были. вот тексты.
1. дана символьная тсрока. расположить символы в строке по возрастанию их внутренних кодов. 2.дан массив целых чисел.упорядочить числа по возрастанию.определить количесвто цифр в числах, стоящих на нечетных местах.вывести информацию на экран дисплея. 3.вывести на дисплей все строки текстого файла, содержащие слово *москва*. 4.дано нечетное число n. заполнить квадратную матрицу размером n*n следующим образом: 1- 2- 3- 4-5 16-17-18-19-6 15-24-25-20-7 14-23-22-21-8 13-12-11-10-9 5.нарисовать окружность радиуса R=30 и передвигать ее по траектории x=r cos(t) (Rx) y=r sin(t) (Ry) при t [0.4П] , Rx=300; Ry=200 6. реализовать процедуры *вывести элементы списка на экран* и *отсортировать по возрастанию список по значению поля символьного типа* для динамической структуры данныз Список. элемент списка является записью с двумя полями : символьного типа и типа указатель на элемент списка. Элементы списка располагаются в динамической памяти. СПисок задается указателем на первый элемент спика. |
#2
|
|||
|
|||
![]() Дяденька, за готовыми решениями вам в другой раздел - Работа.
Задачи 1-4 на массивы и циклы, Задача 5 на простую графику, Задача 6 на связанный список на указателях. Все достаточно стандартные. Единственная интересная задача - задача 4. И то, только если рассматривать алгоритм навигации на массиве. Задача 4 решается примерно так: Код:
procedure TForm1.FillArray(N : Integer); var A : Array Of Array Of Integer; I, J : Integer; dI, dJ : Integer; V : Integer; begin // Create array SetLength(A,N); For I := Low(A) To High(A) Do SetLength(A[i],N); // Init array For I := Low(A) To High(A) Do For J := Low(A[i]) To High(A[i]) Do A[I,J] := 0; // Fill array I := Low(A); J := Low(A[i]); dI := 1; dJ := 0; V := 1; A[I,J] := V; While V <= N*N Do Begin A[I,J] := V; If Abs(dI) = 1 Then Begin If dI = 1 Then Begin If (I + dI > High(A)) Or (A[I + dI, J + dJ] <> 0) Then Begin dJ := 1; dI := 0; End; End Else Begin If (I + dI < Low(A)) Or (A[I + dI, J + dJ] <> 0) Then Begin dJ := -1; dI := 0; End; End; End Else Begin If dJ = 1 Then Begin If (J + dJ > High(A[i])) Or (A[I + dI, J + dJ] <> 0) Then Begin dI := -1; dJ := 0; End; End Else Begin If (J + dJ < Low(A[i])) Or (A[I + dI, J + dJ] <> 0) Then Begin dI := 1; dJ := 0; End; End; End; I := I + dI; J := J + dJ; Inc(V); End; // Print array StringGrid1.ColCount := N; StringGrid1.RowCount := N; For I := 0 To N-1 Do For J := 0 To N-1 Do StringGrid1.Cells[I,J] := InttoStr(A[I,J]); end; Наверное, можно решить красивее, но пока не могу придумать. Кстати, данному алгоритму пофиг, четная размерность матрицы или нет. |
#3
|
|||
|
|||
![]() Цитата:
|
#4
|
||||
|
||||
![]() Тоже добавлю свое решение 4 задачки:
Код:
procedure TForm5.Button1Click(Sender: TObject); Type TDirection = (dRight, dDown, dLeft, dTop); Var Count, i, Col, Row: Integer; Direction: TDirection; begin Count := MatrixSize.Value * MatrixSize.Value; Direction := dRight; Col := 0; Row := 0; for i := 1 to Count do begin Matrix.Cells[Col, Row] := IntToStr(i); case Direction of dRight: if (Col + 1 = MatrixSize.Value) or (Matrix.Cells[Col + 1, Row] <> '') then begin Direction := dDown; Inc(Row); end else Inc(Col); dDown: if (Row + 1 = MatrixSize.Value) or (Matrix.Cells[Col, Row + 1] <> '') then begin Direction := dLeft; Dec(Col); end else Inc(Row); dLeft: if (Col = 0) or (Matrix.Cells[Col - 1, Row] <> '') then begin Direction := dTop; Dec(Row); end else Dec(Col); dTop: if (Row = 0) or (Matrix.Cells[Col, Row - 1] <> '') then begin Direction := dRight; Inc(Col); end else Dec(Row); end; end; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
![]() Цитата:
Цитата:
Неприятно, что появляются темы, заканчивающиеся не решением проблемы, а номером его аськи. Интелектуальный потенциал форума ослабевает, а его организация близится к "барахолке". |
#6
|
|||
|
|||
![]() Гы, все предложенные решения используют один и тот же алгоритм. Разная реализация, но суть одна и та же.
Тут явно должен быть какой-то хитрый алгоритм, бо как не зря в условии сказано, что n нечетное. Но я его не вижу. По поводу товарища XTen, согласен. При следуюшем таком сообщении будет бан. |