![]() |
|
|
Регистрация | << Правила форума >> | 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.х и не проси, делать не буду - лень - слишком примитивные. |