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

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

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

> запутался в задачах чютчють одна норм а другая с ошибкой одной
сообщение
Сообщение #1


Знаток
****

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

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


я сечас прохожу все что связано с двоичным массивом.
7 задачка две дороги и стоят 4 светофора по два на каждой дороги.
для пешеходов загорается зеленый свет в то самое время как на кнопку нажал и горит 30 секунд. Данные записываются в центре когда именно нажал пешеход на кнопку.
напишите а) идею решения
б) программу сколько секунд за сутки горит зеленый свет на всех светофорах.
Первичные данные записаны в файле duom.txt. На первой строчке записано натуральное число n (1 ≤ n ≤ 1000) . В последующих n строчках записано такие данные D или K D - правая K - левая сторона пути, потом записаны 3 неотрицательные числа val - часы, min - минуту и sek - секунды, показывающие когда нажал пешеход на кнопку, (0 ≤ val ≤ 23, 0 ≤ min ≤ 59, 0 ≤ sek ≤ 59).
Результат записывается в секундах в файл rez.txt.
пример
первичные данные
8
K 21 1 59
D 7 8 0
K 13 55 13
D 13 54 59
D 21 2 29
K 7 8 0
D 7 7 50
K 13 55 30
результат
44
обьяснение
7 8 0 загорелся свет в обоих частях и горел 30 секунд
D 13 54 59 в правой загорелся
K 13 55 13 в левой загорелся и горел в месте 14 секунд. Общее горения 44 секунды.

непонял почему они еще непощетали это
K 7 8 0
D 7 7 50
и так получается тут горел 20 секунд да и плюс те 44 выходит результат 64.
вот сделал програмку очень понятную и сразу понятно где ошибка есть вот она
program sviesoforas;
var n,i,j: integer;
a:array [1..1001] of char;
val,min,sek: array [1..1001] of integer;
b,c,d:integer;
pradDuom,
rezult: text;
begin
d:=0;
assign (pradDuom, 'duom.TXT');
assign (rezult, 'rez.TXT');
reset (pradDuom);
rewrite (rezult);
readln (pradDuom, n);
writeln(n);
for i := 1 to n do
begin
readln(pradDuom, a[i],val[i],min[i],sek[i]);
writeln(a[i],' ',val[i],' ',min[i],' ',sek[i]);
end;
for i := 1 to n do
for j :=1+i to n do
if a[i]<>a[j] then
if (val[i]=val[j]) and (min[i]=min[j]) and (sek[i]=sek[j])
then begin d:=d+30;
writeln(' a ',val[i],' ',min[i],' ',sek[i],' = ',val[j],' ',min[j],' ',sek[j],' ravno sekund ',d)
end
else
if (val[i]=val[j]) and (min[i]=min[j]) and (sek[i]<sek[j])
then begin d:=d+((sek[i]+30)-sek[j]);
writeln(' b ',val[i],' ',min[i],' ',sek[i],' = ',val[j],' ',min[j],' ',sek[j],' ravno sekund ',d)
end
else if (val[i] = val[j]) and (min[i]-min[j]=1) and (sek[j]>sek[i])
then
begin sek[j]:=sek[j]+30;
if sek[j]>60
then sek[j]:=sek[j]-60; min[j]:=min[j]+1;
if (min[i]-min[j]=0) and (sek[j]>sek[i])
then d:=d+((sek[i]+30)-sek[j]); sek[j]:=sek[j]+30; min[j]:=min[j]-1;
writeln(' c ',val[i],' ',min[i],' ',sek[i],' = ',val[j],' ',min[j],' ',sek[j],' ravno sekund ',d);
end;



writeln(d);
readln;
end.

вот еще другую сделал тожесамая ошибка
program sviesoforas;
var n,i,j: integer;
a:array [1..1001] of char;
val,min,sek: array [1..1001] of integer;
b,c,d:integer;
pradDuom,
rezult: text;
begin
d:=0;
assign (pradDuom, 'duom.TXT');
assign (rezult, 'rez.TXT');
reset (pradDuom);
rewrite (rezult);
readln (pradDuom, n);
writeln(n);
for i := 1 to n do
begin
readln(pradDuom, a[i],val[i],min[i],sek[i]);
writeln(a[i],' ',val[i],' ',min[i],' ',sek[i]);
end;
for i := 1 to n do
for j :=1+i to n do
if a[i]<>a[j] then
if (val[i]=val[j]) and (min[i]=min[j]) and (sek[i]=sek[j])
then d:=d+30
else
if (val[i]=val[j]) and (min[i]=min[j]) and (sek[i]<sek[j])
then d:=d+((sek[i]+30)-sek[j])
else
if (val[i]=val[j]) and (min[i]=min[j]) and (sek[i]>sek[j])
then d:=d+(sek[i]-(sek[j]+30))
else
if (val[i]=val[j])
then
begin
if (min[i]-min[j]=1)
then
begin
min[i]:=min[i]-1; sek[i]:=sek[i]+60;
if (min[i]-min[j]=0)
then
if (sek[i]-sek[j]>0) then d:=d+(sek[i]-sek[j]); writeln(d);
writeln(' then ',val[i],' ',min[i],' ',sek[i],' = ',val[j],' ',min[j],' ',sek[j])
end
else
begin
min[j]:=min[j]-1; sek[j]:=sek[j]+60;
if (min[j]-min[i]=0)
then
if (sek[j]>sek[i])
then
if (sek[j]-sek[i]<30)
then d:=d+(sek[i]-(sek[j]+30));
end;
end;
writeln(d);
readln;
end.


посоветуйте как лутше сделать или исправьте эти программки.

8 задача Дан список владельцев автомобилей и их номера автомобилей. Надо по номеру автомобиля найти этого человека которому автомобиль принадлежит.
в файле duom.txt. написано на первой строке номер автомобиля которого найти нада на второй строке написан сколько в списке фамилий. фамилия может содержать до 20 символов номер 3 буквы латинские и 3 цифры от 1 до 999.
вот предоставили данные
const SK = 1000;
type savin = record
pavarde: string[20];
num_raid: string[3];
num_sk: 1..999
end;
sarasas = array [1..SK] of savin;

и все номера автомобилей будут по порядку идти
AAA001
AAA002
AAA005
AAA006
...
AAA999
AAB002
...
и еще списак можетбыть от 1 до 1000 людей
данные записать в файл rez.txt.
пример
KVL578
6
Petraitis ABC321
Petkeviciene BJU500
Jonaitis DKG512
Antanaitis KVL578
Zemaityte KVL644
Bartkus VVV255

результат фамилия владельца автомобиля Antanaitis
вот я зделал простую программу эту все правильно выводит
вот
program automobilis;
const SK = 1000;
type savin = record
pavarde: string[20];
num_raid: string[3];
num_sk: 1..999
end;
sarasas = array [1..SK] of savin;
var
a:string[3];
n,i,s:integer;
c:sarasas;
p:text;
begin
assign (p, 'duom.TXT');
reset (p);
readln (p, a,n);
writeln(a,' ',n);
readln(p, s);
writeln(s);
for i:=1 to s do
begin
readln(p,c[i].pavarde,c[i].num_raid,c[i].num_sk);
writeln(c[i].pavarde,' ',c[i].num_raid,' ',c[i].num_sk);
end;
writeln;
for i:=1 to s do
if (c[i].num_raid=a) and (c[i].num_sk=n) then writeln( c[i].pavarde);
readln;
end.


потом я эту программу перепишу в двоичный поиск сделаю.

непонятно мне следущее
Вместе с 7 и 8 заданиями вместе должно быть выложена программа генерирующая случайное условия соответствующую первичным набором данных (случайный тест) в котором должен быть хоть один искомый обьект.
вот все ого как это так может обесните.
и еще эти задания должны быть записаны в файлы lapsi107.pas и lapsi108.pas генерирующие программы должны быть записаны в файлы apsi107gen.pas и lapsi108gen.pas .
во как даже может мне обьясните что за генераторы и как их сделать .


Добавлено через 2 мин.
ого сколько много написал я. если что нибуть непонятно то спросите уж извините за перевод с литовского на русский

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


Эскизы прикрепленных изображений
Прикрепленное изображение

--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
maksimla   запутался в задачах чютчють одна норм а другая с ошибкой одной   17.12.2008 19:49
Lapp   вот сделал програмку очень понятную Вот ЭТО ты наз…   18.12.2008 12:22
maksimla   извините но серовно тут неправильно результат выво…   18.12.2008 16:06
maksimla   вот свой код исправил я как мне приснилось ночью )…   18.12.2008 16:34
maksimla   все я больше запутался и уже немогу решать голова …   20.12.2008 15:07
maksimla   K 13 55 13 D 13 54 59 непонел вот услал уже и ту…   20.12.2008 15:31
Lapp   запутался нечего непойму ужеКонечно, запутаешься т…   20.12.2008 16:13
maksimla   так я примерно понел это что написали program svi…   20.12.2008 16:46
Lapp   {а вот тут не выполняется после else чегото почем…   20.12.2008 16:57
maksimla   потомучто написал это и не видел букв я вот и поэт…   20.12.2008 17:11
Айра   Lapp, по-моему, ты убрал из его кода слишком мног…   20.12.2008 17:32
Lapp   ты убрал из его кода слишком много лишнего) Хм.. …   20.12.2008 17:39
maksimla   вот кажется сделал я до конца можете проверить оче…   20.12.2008 23:58
Айра   0. думаю, при вычислении d нужно проверять, чтоб о…   21.12.2008 4:27
volvo   Можно кое-что уточнить? Почему 14 секунд? Левый с…   21.12.2008 8:42
maksimla   спасибо но может мне обьясните эту задачку как вы …   21.12.2008 15:37
maksimla   а от куда взял число 86400?   21.12.2008 16:04
volvo   А какая разница? Хоть пять разделов Var сделай, от…   21.12.2008 16:07
maksimla   непонятно мне следущее Вместе с 7 и 8 заданиями вм…   21.12.2008 17:42
volvo   Имеется в виду, когда программа запущена - это в п…   21.12.2008 18:26
maksimla   зачем и что это дает value[1] := random(500); ка…   21.12.2008 21:12
maksimla   можете подсказать как сделать random буквы английс…   21.12.2008 22:48


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

 





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