Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2014, 12:00   #1
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию Динамическая Структура.Часть2.

Добрый день!Дана схема,программа работает и рисует.Но требуется чтобы внизу в квадратиках были разные буквы я много менял,но всегда выходит одинаково.Код программы прилагается ниже.

Код:
uses
   GraphABC;
 
type
   pselem = ^selem;
   plelem = ^lelem;
   pkelem = ^kelem;
   selem = record
      data: integer;
      next: pselem;
      down: plelem;
   end;
   
   lelem = record
      data: char;
      next: pselem;
   end;
 
 kelem = record
     data: char;
     next: pselem;
     end;
 
var
   first, last: pselem;
   n: string;
   m: integer;
 
procedure Add(q: integer; f: char);
var
   pse: pselem;
   ple: plelem;
   pkl: pkelem;
   
begin
   New(pse);
   New(ple);
   New(pkl);
    
   pse^.data := q;
   pse^.down := ple;
   pse^.next := Nil;
   
   ple^.data := f;
   ple^.next := pse;
   ple^.next := Nil;
   
   pkl^.data := f;
   pkl^.next := nil;
   
   if last = nil then
   
   begin
      last := pse;
      first := pse;
   end
   
   else
   begin
      last^.next := pse;
      last := pse;
   end;
end;
 
procedure Show;
var
   x, y: integer;
   k: pselem;
begin
   x := 10;
   y := 10;
   k := first;
   
   while k <> nil do
   begin
      if inttostr(k^.data) = n then
         pen.Color := clblue;
      DrawRectangle(x, y, x + 50, y + 50);
      DrawRectangle(x + 70, y + 70, x + 120, y + 120);
      DrawRectangle(x + 150, y + 70, x + 200, y + 120);
      
      textout(x + 20, y + 20, IntToStr(k^.data));
      textout(x + 90, y + 90, k^.down^.data);
      textout(x + 170, y + 90, k^.down^.data);
      
      pen.Color := clblack;
      
      line(x + 50, y + 20, x + 250, y + 20); 
      line(x + 45, y + 40, x + 75, y + 70);
      line(x + 120, y + 100, x + 150, y + 100);
      line(x + 250, y + 45, x + 195, y + 80);
      
      k := k^.next;
      
      if k = nil then
         
         textout(x + 250, y, '    ');
      
      x := x + 250;
      
   end;
   
end;
 
procedure Shag;
begin
   Add(random(5), chr(random(80, 90)));
   n := IntToStr(m);
   Show;
end;
 
procedure keydown(key: integer);
begin
   case key of
      VK_F1: Shag;
   end;
end;
 
begin
   writeln('введите искомое значение - до 5');
   readln(m);
   window.Clear;
   onkeydown := keydown;
end.
Изображения
Тип файла: jpg Схема-1.jpg (5.0 Кб, 142 просмотров)
Otar4ik вне форума Ответить с цитированием
Старый 10.02.2014, 17:20   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,639
По умолчанию

М.б. перед использованием функции random нужно использовать функцию randomize чтобы перезапустить генератор ?
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 11.02.2014, 11:17   #3
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию

Тему можете закрывать решил сам)
Otar4ik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическая структура JoberLord Общие вопросы C/C++ 2 25.05.2013 09:28
динамическая структура Тимурка Помощь студентам 0 20.04.2011 17:37
Динамическая структура. triasoft Фриланс 5 02.06.2010 01:47
Динамическая структура Nitriyc Помощь студентам 0 18.12.2009 17:51
динамическая структура o4arova6ka90 Помощь студентам 0 17.10.2009 14:05