Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.05.2010, 17:29
Zadira777 Zadira777 вне форума
Прохожий
 
Регистрация: 24.05.2010
Сообщения: 2
Репутация: 10
Печаль Завтра сдавать курсовую помогите.

Всем привет люди мне дали курсовую делать немного разобрался, сделал пару заданий ост не знаю как даже делать протянул время а тут оп издавать надо помогите пожалуйста. Нужно сделать в Консоли в делфи:
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  
Старый 24.05.2010, 20:17
lmikle lmikle сейчас на форуме
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,100
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

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  
Старый 24.05.2010, 23:31
Zadira777 Zadira777 вне форума
Прохожий
 
Регистрация: 24.05.2010
Сообщения: 2
Репутация: 10
По умолчанию

Огромное спасибо за ответ но не мог бы ты по подробней рассписать задачу прошу очень надо а времяни уже нет. Премного благодарен.
Ответить с цитированием
  #4  
Старый 25.05.2010, 00:46
lmikle lmikle сейчас на форуме
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,100
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Не, лениво. Были бы задачи интересные, а то стандартный примитив.
Делай, выкладывай код - мы подправим.

По задачам 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.х и не проси, делать не буду - лень - слишком примитивные.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:51.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025