IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

3 страниц V < 1 2 3 >  
 Ответить  Открыть новую тему 
> 4 задачи и куча вопросов...., практика.....
сообщение
Сообщение #21


Гость






Цитата(klem4 @ 11.07.05 16:02)
конечно можно, если возможны все символы, то например так :
  ch:=chr(random(256));

Никогда больше так не делай... Ты должен генерировать символы, которые можно распечатать, не включая управляющие:
s := s + chr(32+random(255-32));
 К началу страницы 
+ Ответить 
сообщение
Сообщение #22


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Женский

Репутация: -  0  +


klem4, а что такое n? количество символов в строке что ли?
еще вопросик.... rolleyes.gif
как лучше реализовать возможность сохранить результаты в файл? после каждой конкретной задачи или в конце программы после всего? и как это сделать? blink.gif


--------------------
девушка - программистка..... правда я еще только учусь.... :-))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #23


Гость






Цитата(Анка @ 11.07.05 16:26)
а что такое n? количество символов в строке что ли?
Я конечно не klem4 smile.gif Именно количество символов в строке... Причем я бы и это количество тоже генерировал random-ом
Цитата(Анка @ 11.07.05 16:26)
как лучше реализовать возможность сохранить результаты в файл? после каждой конкретной задачи или в конце программы после всего? и как это сделать?
Зависит от конкретных требований к программе, смотря что сохранять... Например, в этот раз ты посчитала сумму векторов, в другой раз - отсортировала массив... Сумму векторов тоже будешь сохранять?

Тогда делай что-то типа Log-файла, куда будут заноситься все удачно завершенные операции (естественно, только при последнем запуске...). Для этого программа должна просто дублировать вывод на экран выводом в текстовый файл... (файл должен открываться при старте программы - первой строкой, а закрываться - последней...)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #24


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Женский

Репутация: -  0  +


а что такое count? какого типа? хм.....
volvo, а как это сделать? просто открыть вначале файл для записи, а в конце закрыть его? что я не совсем понимаю... blink.gif


--------------------
девушка - программистка..... правда я еще только учусь.... :-))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #25


Гость






Count - типа Byte (больше нет смысла, все равно в строке только до 255 символов):
var
count, n: byte;
s: string;
begin
s := '';
n := 5 + random(255 - 5); { случайная длина от 5 до 255 символов }
for count := 1 to n do
s := s + chr(32+random(255-32)); { это я уже писал, почему }
end;


А насчет лог-файла... Вот тебе пример:

var f_log: text;
begin { начало основной программы }
assign(f_log, 'log.txt');
{$i-} rewrite(f_log); {$i+}
{ обработка ошибки открытия лог-файла }
...
Begin { здесь обрабатываем сложение векторов }
GetVector('first vector', v1);
GetVector('second vector', v2);

VAdd(v3, v1, v2); { v3 <- v1 + v2 }
PrintVector('result', v3); { печатаем на экран }

{ и записываем в лог }
WriteLn(f_log, 'add vector: v1=', v1.X:7:3, v1.Y:7:3,
' v2=', v2.X:7:3, v2.Y:7:3, ' result = ', v3.X:7:3, v3.Y:7:3);
End;
...
close(f_log); { перед самым концом программы закрываем лог-файл }
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #26


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Женский

Репутация: -  0  +


volvo, а у меня n типа integer, зачем byte?
с файлом кошмар.... значит придется это писать, точнее одну часть в каждой части моей программы, но спасибо, вроде поняла. Я немного не так думала....
кстати, я сейчас конечно попробую на деле, но какие символы формируются при случайной генерации? Мне нужна латиница и цифры (П.С. это для 4 задачи)

Сообщение отредактировано: Анка -


--------------------
девушка - программистка..... правда я еще только учусь.... :-))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #27


Гость






Цитата(Анка @ 12.07.05 9:01)
volvo, а у меня n типа integer, зачем byte?

А зачем Integer? Все равно больше 255 нельзя, но если не хочешь менять - можно оставить Integer...
Цитата(Анка @ 12.07.05 9:01)
кстати, я сейчас конечно попробую на деле, но какие символы формируются при случайной генерации? Мне нужна лиитница и цифры
Если тебе только латиница и цифры, то вот так:
var ch: char;
{ здесь генерируешь n }
for i := 1 to n do begin
repeat
{ случайный символ в интервале ['0'(ноль) .. 'z'] }
ch := chr(48+random(122-48));

{ но в этом интервале есть и другие символы,
(точки, двоеточия, запятые...), и их не надо включать в строку }
until upcase(ch) in ['A'..'Z', '0'..'9'];
s := s + ch;
end;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #28


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Женский

Репутация: -  0  +


volvo, спасибо, сейчас подредактирую, мне нужна как раз только латиница и цифры. Я просто в самой задаче в первом сообщении забыла изменить, русских букв на английских..

а на счет integer.... просто я уже сгенерировала n, и если не integer, то придется вводить новую переменную, а так n у меня уже есть, используется в др. месте, а переменых уже...... очень много rolleyes.gif :D

Сообщение отредактировано: Анка -


--------------------
девушка - программистка..... правда я еще только учусь.... :-))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #29


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Женский

Репутация: -  0  +


что-то у меня немного не получается с 4, так как я уже сделала ее для ввода с клавы и из файла, у меня программа для str {char}, вот теперь не знаю, что делать для случайно генерации, так как не хочется опять писать новую программу для генерации, а в старой при замене некоторых переменых типы не подходят....... а сдавать завтра.... sad.gif
вот моя программа, может кто подскажет:

begin
cifri:=0;
bukvi:=0;
repeat
repeat
read (str);
if str in ['a'..'z'] then
bukvi:=bukvi + 1;
if str in ['0'..'9'] then
cifri:=cifri + 1;
until eoln;
until str='*';
readln;
if bukvi>cifri then
writeln ('V dannoi stroke bol`she bukv');
if cifri>bukvi then
writeln ('V dannoi stroke bol`she cifr');
if cifri=bukvi then
writeln ('V dannoi stroke bukv i cifr porovnu');
writeln ('Dlja prodolgenija nagmite enter');
end;



--------------------
девушка - программистка..... правда я еще только учусь.... :-))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #30


Гость






Попробуй вот так:

begin
str_ok := True; { введи новую переменную }
case t of { t - твой выбор, откуда читать строку }
1: begin
{ читаешь строку с клавиатуры (только читаешь, не обрабатываешь !!!) }
end;

2: begin
{ Чтение строки из файла }
end;
3: begin
{ генерация случайной строки }
end;
4: begin
{ сообщение о выходе }
str_ok := False;
end;
end {case}

{ а здесь - собственно обработка строки (если нужно) }
if(str_ok) then begin

cifri:=0; bukvi:=0;

for i := 1 to length(str) do
if upcase(str[i]) in ['A'..'Z'] then bukvi:=bukvi + 1
else if str[i] in ['0'..'9'] then cifri:=cifri + 1;

if bukvi>cifri then writeln ('V dannoi stroke bol`she bukv')
else if cifri>bukvi then writeln ('V dannoi stroke bol`she cifr');
else writeln ('V dannoi stroke bukv i cifr porovnu');
end;
end;

Если я не ошибаюсь, этот блок Begin ... End надо поставить вместо того Case, что сейчас стоит под условием:
if (t=1) or (t=2) or (t=3) or (t=4) then
 К началу страницы 
+ Ответить 
сообщение
Сообщение #31


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Женский

Репутация: -  0  +


volvo, спасибо, куда писать, я знаю, но эта переменная чем мне поможет? если при генерацци случайной у меня все записывается в переменную s, как вы показали, а если изменить, чтобы все читалось в str, то типы не подходят! А так суть программы-то не меняется..... все равно надо что-то делать с вводом случайно или я что-то не понимаю? Готова признать, что неправа, если это так..... rolleyes.gif

Сообщение отредактировано: Анка -


--------------------
девушка - программистка..... правда я еще только учусь.... :-))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #32


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


Я что-то не вижу где здесь переменная S...


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #33


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Женский

Репутация: -  0  +


Цитата
Я что-то не вижу где здесь переменная S...

при случайной генерации....... смотрите выше.....volvo выкладывал, так вот там если заменить на str, то тип не подходит....
еще вопросик.... rolleyes.gif
я как всегда видимо что-то напутала...
вот часть моей программы:

writeln ('Vvedite nomer stroki');
write ('Vibrana stroka: ');
readln (k);
min:=mx[k][1];
jmin:=1;
for i:=k to k do {не знаю, как записать иначе, мне нужна лишь одна строка}
for j:=1 to size_col do
if mx[k][j]<min then begin
swap_cols(mx,jmin,j);
min:=mx[k][j];
jmin:=jmin+1;
end
else
j:=j+1;
{end;}


это часть моей программы по замене столбцов, мне нужно, чтобы они поменялись по возростанию элементов в заданной строке...... они меняются, но не совсем так как надо.....

Сообщение отредактировано: Анка -


--------------------
девушка - программистка..... правда я еще только учусь.... :-))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #34


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


Цитата(Анка)
у меня все записывается в переменную s, как вы показали, а если изменить, чтобы все читалось в str, то типы не подходят!
Ну так поменяй str на s ... В чём проблема вообще?

Для замены столбцов нужен только 1 цикл for j
j - столбец
k - строка

k := 3; { заменяем по 3-й строке, допустим. }

for j:=1 to size_col do
if mx[j, k]<min then begin
swap_cols(mx,jmin,j);
min:=mx[j, k];
jmin:=jmin+1;
end
else
j:=j+1;


Сообщение отредактировано: Romtek -


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #35


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


mx[k][j] - такой формы записи в Паскале не существует. Так только в языке C пишут.
Надо так: mx[j, k]
j - столбец.


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #36


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Женский

Репутация: -  0  +


Цитата
Ну так поменяй str на s ... В чём проблема вообще?

так в том-то и проблема, что они разных типов, а там надо в s записать всю строку:
s := s + ch
. Если изменить даже тип переменной str на string (было char), то почему-то не идет сама программа.....
я уже пробовала..... там не нравится Паскалю вот это строчка при таком типе данных
[if str in ['a'..'z'] then


за программу спасибо, я не знала, что нужен один цикл.... rolleyes.gif


--------------------
девушка - программистка..... правда я еще только учусь.... :-))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #37


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Женский

Репутация: -  0  +


Цитата
mx[k][j] - такой формы записи в Паскале не существует. Так только в языке C пишут.
Надо так: mx[j, k]
j - столбец.

тогда почему на этом же форуме есть запись вот такая:
 procedure print (var mx: tmatrix);
var i, j: integer;
begin
for i:=1 to size_col do
begin
for J:=1 to size_col do
write(mx[j][i]:4);
writeln;
end;
end;

я поэтому так и написала, так как использовала эту процедуру, а мне нужно было, чтобы номер столбца как раз был впереди....


--------------------
девушка - программистка..... правда я еще только учусь.... :-))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #38


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


Понятно. У тебя матрица определена по-другому. Значит всё нормально.

Вольво писал:
    for i := 1 to length(str) do
if upcase(str[i]) in ['A'..'Z'] then bukvi:=bukvi + 1
else if str[i] in ['0'..'9'] then cifri:=cifri + 1;


str: string;

str[i] - соответственно, типа char.
Если у тебя дана строка s, то замени все str на s.
Твой вариант был неверен.


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #39


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Женский

Репутация: -  0  +


или я что-то не понимаю, но нужные столбцы он менять не хочет все равно.... sad.gif


--------------------
девушка - программистка..... правда я еще только учусь.... :-))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #40


Гость






Какие столбцы ???? О чем речь вообще? Об обработке матриц или строк? Я вообще уже ничего не понимаю...

В-общем, так: подобных тем ("4 задачи и куча вопросов") больше НЕ создавать. Одна тема - один вопрос. Эту тему я скорее всего закрою, ибо здесь уже полный балаган.
 К началу страницы 
+ Ответить 

3 страниц V < 1 2 3 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.04.2024 11:42
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name