Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];

Вниз

Провертьте мое задание   Найти похожие ветки 

 
Вован Сем   (2006-07-11 16:44) [0]

Нужна с одного символа получить строку, которая все время растет в длину. Лаб. работа на курсах. Но не всегда правильно работает.


uses
 crt;

const
 min=255;

var
 buf:array[1..24,1..80,1..2] of byte absolute $B800:0000;
 chs:array[1..24,1..80,1..2] of char absolute buf;
 cmd,par,r_s:string;
 len:byte absolute r_s;
 b_a:array[0..min] of byte absolute r_s;
 c_c:byte;

procedure test;
begin
{...}
end;

begin
 fillchar(b_a,sizeof(b_a),0);
 clrscr;
 if paramcount<>0 then
   r_s:=paramstr(1)
  else
   r_s:=chr(min);
 repeat
   while (b_a[1]>0) and (buf[9,71,1]<>79) do
   begin
     if not ( b_a[1] in [9,13,32,34] ) then
     begin
       clrscr;
       for c_c:=1 to len do
       begin
         buf[4,c_c,1]:=b_a[c_c];
       end;
       Test;
     end;
     if keypressed then buf[9,71,1]:=79;
     dec(b_a[1]);
   end;
   for c_c:=1 to len do
   if b_a[c_c]=0 then
   begin
     if b_a[len]=0 then
      inc(len);
     b_a[c_c]:=min;
     dec(b_a[c_c+1]);
   end;
   if keypressed then buf[9,71,1]:=79;
 until buf[9,71,1]=79;
end.


 
Сергей М. ©   (2006-07-11 16:51) [1]

Это что, ТурбоПаскаль ?


 
Игорь Шевченко ©   (2006-07-11 16:59) [2]


>  Провертьте мое задание


Преподаватель проверит


 
Вован Сем   (2006-07-11 17:00) [3]

Так сказали на паскале?!


 
Вован Сем   (2006-07-11 17:01) [4]

а можно как то сократить алгоритм


 
Сергей М. ©   (2006-07-11 17:10) [5]


> Вован Сем   (11.07.06 17:00) [3]
>
> Так сказали на паскале?


Это ты нас спрашиваешь ?)


 
Вован Сем   (2006-07-11 17:24) [6]

Я Прошу совета у Великих мастеров. Плиз


 
Сергей М. ©   (2006-07-11 17:26) [7]

Ну так и обозначть задание именно так как оно звучит в оригинале, слово в слово !)


 
Вован Сем   (2006-07-11 17:34) [8]

Составить программу с использованием массивов для нахождения требуемого словосочетания в строках. Строку изменять перебором, используя функции inc(char)  и dec(char), начиная с первого символа.


 
Сергей М. ©   (2006-07-11 17:39) [9]


> Составить программу


На Паскале ? Или именно в ТурбоПаскале ?


 
Вован Сем   (2006-07-11 17:44) [10]

С помощью Паскаля, так было сказано.


 
Virgo_Style ©   (2006-07-11 18:34) [11]

Задание пугает еще сильнее, чем восьмая строка программы


 
Вован Сем   (2006-07-11 18:46) [12]

Такое вот задание дали на курсах. Програмка работает, но есть ошибки в алгоритме.


 
Virgo_Style ©   (2006-07-11 19:24) [13]

c использованием массивов
массив=строка? Тогда по-другому и не сделаешь.
массив<>строка? а зачем он тогда нужен?

Строку изменять перебором
какую? Я так понимаю, что требуется генерировать всякую, кхм, муть и искать в ней требуемое сочетание. М-м-м... нетривиальное мышление %-)
Причем не сказано, каким образом изменять. Если я буду произвольному символу делать inc или dec (случайно), это удовлетворяет постановке задачи, или где?
Кстати, массив, видимо, должен использоваться именно в этой части задачи... в общем-то его было бы сложно не использовать, бо строки являются не чем иным, как массивами...

Что до программы - не нравится вот это:
> buf:array[1..24,1..80,1..2] of byte absolute $B800:0000;
>  chs:array[1..24,1..80,1..2] of char absolute buf;

Тьма с ним, со вторым массивом, в принципе, почему бы и нет, дело вкуса... а вот зачем absolute $B800:0000 - вот это меня смущает оченно сильно.


 
Шпиён   (2006-07-11 19:37) [14]


> Virgo_Style ©   (11.07.06 19:24) [13]


> Что до программы - не нравится вот это:
> > buf:array[1..24,1..80,1..2] of byte absolute $B800:0000;
>
> >  chs:array[1..24,1..80,1..2] of char absolute buf;
> Тьма с ним, со вторым массивом, в принципе, почему бы и
> нет, дело вкуса... а вот зачем absolute $B800:0000 - вот
> это меня смущает оченно сильно.

DOS -)
Если правильно помню - вывод в буфер экрана


 
Шпиён   (2006-07-11 19:41) [15]

Уточнение:
$B800:0000 - это адрес сегмента видеопамяти в текстовом режиме.


 
Вован Сем   (2006-07-12 10:50) [16]


> Причем не сказано, каким образом изменять.

Я показал в коде, что сначала строка состоит из одного символа.
п.1
Перебор идет от значения 255 до 0, далее длина строки увеличена на 1.
п.2.
Теперь второй элемент =255 и повторяем п.1 до тех пор пока второй элемент не будет равен 0 и т.д. процедура тест сравнивает строку с внешним параментром и повторяем процес. Ну еще есть проверка символов которых не может быть с помощью строки
if not ( b_a[1] in [9,13,32,34] ). вот вроде так.


 
Kolan ©   (2006-07-12 11:16) [17]


> Составить программу с использованием массивов для нахождения
> требуемого словосочетания в строках.

Это понятно..
> Строку изменять перебором

А это что значит?


 
Вован Сем   (2006-07-12 11:23) [18]

Если уж нельзя в Турбо, то хоть дайте просто алгоритм правильный


 
Вован Сем   (2006-07-12 11:23) [19]


> > Строку изменять перебором
>
> А это что значит?

читай 16 пост


 
Вован Сем   (2006-07-12 11:48) [20]

to Kolan ©
перебором символов, может так понятно.


 
Ketmar ©   (2006-07-12 13:20) [21]

то ли трава забористая, то ли я сильно отстал от жизни...
хоть кто-нибудь понял, чего хотят в задании? %-)


 
Alien1769 ©   (2006-07-12 13:27) [22]


> хоть кто-нибудь понял, чего хотят в задании? %-)

Лично, я узрел в этой "програмке" подбор пароля. IMHO


 
Сергей М. ©   (2006-07-12 13:37) [23]


> Ketmar ©   (12.07.06 13:20) [21]


Курсы те, на которых формулируются задания в такой жуткой формулировке - "фтопку".


 
Вован Сем   (2006-07-12 21:51) [24]


> Курсы те, на которых формулируются задания в такой жуткой
> формулировке - "фтопку".

Может я и ламер, но меня преподаветель курсов оценила, хотя и не заметила моей ошибки в алгоритме.
Спасибо всем кто "оценил" мое творчество...



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.016 c
1-1150060668
TFont
2006-06-12 01:17
2006.07.30
Как получить векторы из векторного шрифта?


4-1145002807
vodvorezlaya
2006-04-14 12:20
2006.07.30
Помогите разобраться с контролем приложений


15-1151299906
Ega23
2006-06-26 09:31
2006.07.30
С Днём рождения! 24 июня


1-1150289355
Nicky
2006-06-14 16:49
2006.07.30
Как написать код, чтобы открывался файл справки при инсталляции


1-1150488885
guard_gg
2006-06-17 00:14
2006.07.30
Как реализовать динамический буффер в BlockRead?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский