Форум: "Начинающим";
Текущий архив: 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.012 c