![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Всем привет люди мне дали курсовую делать немного разобрался, сделал пару заданий ост не знаю как даже делать протянул время а тут оп издавать надо помогите пожалуйста. Нужно сделать в Консоли в делфи:
3.17. Шахматная доска содержит 8x8 клеток. Горизонтали и вертикали обозначаются цифрами 1-8. Написать программу, проверяющую, можно ли с первой заданной клетки попасть на вторую одним ходом ладьи. 4.17. Написать программу, позволяющую вычислить с помощью цикла:2+2(во второй)+2(в третей)+2(в n степени) , где n задается с клавиатуры. 4.18. Известно, какую сумму денег, на какой срок (в годах) и под какой годовой процент положил каждый из n бизнесменов в банк. Определить величину вклада каждого бизнесмена на конец срока. 7.16. В журнале записаны оценки n студентов, сдававших m экзаменов. Если студент не сдавал экзамен, то его оценка нуль. Написать программу, указывающую студентов, которые получи ли одинаковые оценки по всем предметам. 7.17. В журнале записаны оценки n студентов, сдававших m экзаменов. Если студент не сдавал экзамен, то его оценка нуль. Написать программу, указывающую предметы, для которых про цент пятерок не меньше, чем процент пятерок на втором экзамене. 8.17. В заданном предложении переставить слова в порядке возрастания их длины. 8.18. Все слова заданного английского текста переписать «пословно» в массив. |
|
#2
|
|||
|
|||
|
3.17. У тебя должна совпадать одна из координат.
Код:
var Cell1, Cell2 : TPoint; begin Result := (Cell1.x = Cell2.x) Or (Cell1.y = Cell2.y); 4.17. Тупой цикл, правда который можно оптимизировать. Код:
var
I, P, S : Integer;
begin
S := 0;
P := 1;
For I := 1 To N Do
Begin
P := P * 2;
S := S + P;
End; 4.18. Тоже примитивно. Тебе нужно сделать функцию расчета суммы для одного случая, на вход сумма, процент и срок, далее считаем. Для N делается опять же циклом: Код:
function ResSum(S, P : Currency; Len : Integer) : Currency;
var
I : Integer;
begin
Result := S;
For I := 1 To Len Do
Result := S + S*P/100;
end;
...
var
A : Array [1..10] Of Currency;
I : Integer;
begin
// Init
For I := 1 To 10 Do A[i] := Random(100000);
// Calc for 2% and 5 years
For I := 1 To 10 Do
Writeln('Start sum = ',A[i],'; End sum = ',ResSum(A[i],2,5));... Все, надоело. Дальше только подсказки. 7.16, 7.17 - Двумерный массив и вложенные циклы. 8.17 - функции Pos, Copy, Len плюс массив (или список) и его сортировка. 8.18 - функции Pos и Copy. Или работа со строкой как с массивом символов. |
|
#3
|
|||
|
|||
|
Огромное спасибо за ответ но не мог бы ты по подробней рассписать задачу прошу очень надо а времяни уже нет. Премного благодарен.
|
|
#4
|
|||
|
|||
|
Не, лениво. Были бы задачи интересные, а то стандартный примитив.
Делай, выкладывай код - мы подправим. По задачам 8.х. Там можно просто делить слово по пробелам. Точнее задача 8.18 - находишь поз. пробела и отрезаешь слово. И так, пока в строке неостанется ни одного пробела. А задача 8.17 - еще полученным массив отсортировать по длиннам слов. Код:
var
S : String;
I, J : Integer;
A : Array Of String;
Idx : Integer;
begin
S := 'this is the text';
// 8.18
SetLength(A,0);
Idx := Pos(' ',S);
While Idx > 0 Do
Begin
SetLength(A,Length(A)+1);
A[High(A)] := Copy(S,1,Idx-1);
S := Copy(S,Idx+1,Length(S));
End;
If S <> '' Then
Begin
SetLength(A,Length(A)+1);
A[High(A)] := S;
End;
// 8.17
For I := Low(A) To High(A)-1 Do
For J := Low(A)+1 To High(A) Do
If Length(A[i]) > Length(A[J]) Then
Begin
S := A[i];
A[i] := A[J];
A[J] := S;
End;
S := '';
For I := Low(A) to High(A) Do
Begin
If S <> '' Then S := S + ' ';
S := S + A[i];
End;про 7.х и не проси, делать не буду - лень - слишком примитивные. |