Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 16.10.2009
Сообщений: 12

Напечатать список

28.02.2010, 23:00. Показов 969. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Писал,писал...и запутался...может кто-нибудь посмотри 4то надо исправить,4тобы работала?
Пажалуйста...

Даны массивыЖ
F,nF,s,rt-фамилии водителей,номерные знаки машин,пройденный путь за смену,расход топлива за смену.
Напе4атать список водителей у которых расход от 8 до 10...и больше 10...
Вывод таблицой из звёздо4ек пытался сделать....
table8.txt
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
uses crt;
const n=20;m=8;
type shifr=array[1..n] of string[m];
var F:shifr;
r:array [1..n] of real;
s,rt,nF:array [1..n] of real;
i,j:integer;
g:text;
z:string;
begin
clrscr;
z:='****************************';
assign(g,'table8.txt');
reset(g);
writeln('Isxodnie dannie');
writeln(z);
writeln('*voditeli*nomer*pyti*rasxod*');
writeln(z);
 
for i:=1 to n do begin
readln(g,F[i],nF[i],s[i],rt[i]);  close(g);
writeln('*',F[i]:8,'*',nF[i]:5,'*',s[i]:4,'*',rt[i]:6,'*');
end;  writeln(z);
 
writeln('Rasxod ot 8 do 10 litrov na 100 km');
writeln('*voditeli*rasxod*');
writeln('*****************');
for i:=1 to n do begin
 r[i]:=rt[i]/s[i]*100;
  if (r[i]>8)and(r[i]<10) then
    writeln('*',F[i]:8,'*',r[i]:6,'*');
  end;
writeln('*****************');
 
writeln('Rasxod >10 litrov na 100 km');
writeln('*voditeli*rasxod*');
writeln('*****************');
for i:=1 to n do begin
 r[i]:=rt[i]/s[i]*100;
  if r[i]>10 then
    writeln('*',F[i]:8,'*',r[i]:6,'*');
  end;
writeln('*****************');
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.02.2010, 23:00
Ответы с готовыми решениями:

Напечатать список премированных водителей с указанием суммы
Var Pr,P,R:array of real; F:array of string; S,FOND:real; i:byte; t:text; begin clrscr; s:=0;FOND:=0; ...

Упорядочить список студентов за датой рождения и напечатать его
Уважаемые форумчани. Первый раз прошу помощи такого рода. Но в жизни бывает разное. Вообщем нужно написать с десяток программ на паскале....

Напечатать весь список вершин и название самой высокой
Помогите разобраться... Нужно напечатать весь список вершин и название самой высокой. мои наброски: type st=string; ...

9
0 / 0 / 0
Регистрация: 16.10.2009
Сообщений: 12
28.02.2010, 23:27  [ТС]
Может хотя бы кто-нибудь скажет от 4его появляется 106 ошибка в 21 строке...???

Добавлено через 6 минут
Пожалууууууста...буквально умоляю...
а то не сдам...
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.03.2010, 08:31
Pascal
1
readln(g,F[i],nF[i],s[i],rt[i]);  close(g);
Так читать текстовый фал нельзя, можно только построчно, а затем вытаскивать из строки слова
, каждое в свой массив. Посмотри в этой теме, я там привел пример чтения записей из файла, только у Вас не записи, а массивы.
База данных, работа с .TXT
0
0 / 0 / 0
Регистрация: 16.10.2009
Сообщений: 12
01.03.2010, 09:47  [ТС]
Pascal
1
2
3
4
readln(g,F[i]);
readln(g,nF[i]);
readln(g,s[i]);
readln(g,rt[i]);  close(g);
Пробую так...выдаёт 106 ошибку на 3 строке....
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.03.2010, 09:57
BlueeYeS, Я Вам для чего ссылку дал?
1
0 / 0 / 0
Регистрация: 16.10.2009
Сообщений: 12
01.03.2010, 10:57  [ТС]
Запутался в выводе....
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    sp[n].f:=copy(s,1,pos(';',s)-1);//в примере разделитель между словами точка с запятой,                                     //напишете свой, читаем первое слово до разделителя,
                                    //если это строковое поле, сразу заносим в запись
    gotoXY(1,whereY);write('| ',sp[n].f);//выводим
    delete(s,1,pos(';',s));//удаляем его вместе с разделителем
    sp[n].i:=copy(s,1,pos(';',s)-1);
    gotoXY(13,whereY);write('| ',sp[i].i);
    delete(s,1,pos(';',s));
    sp[n].o:=copy(s,1,pos(';',s)-1);
    gotoXY(26,whereY);write('| ',sp[i].o);
    delete(s,1,pos(';',s));
    sp[n].p:=copy(s,1,pos(';',s)-1);
    gotoXY(39,whereY);write('|  ',sp[i].p);
    delete(s,1,pos(';',s));
    s1:=copy(s,1,pos(';',s)-1);
    val(s1,t,c);//если поле числовое, преобразуем строку в число
    sp[n].v:=t;//заносим в запись
    gotoXY(45,whereY);write('|   ',sp[i].v);
    delete(s,1,pos(';',s));
    val(s,t,c);
    sp[n].k:=t;
    gotoXY(55,whereY);write('|  ',sp[i].k);
    gotoXY(61,whereY);write('|');
Даже не запутался...а вообще не понял,как это может работать у меня с массивами(

Добавлено через 25 минут
fh 347 300 25
fg 768 245 45
gh 754 345 21
hg 457 689 67
gh 467 566 24
rn 567 356 32
fg 455 256 52
df 653 466 35
hh 456 424 46
dg 456 324 56
db 452 467 46
fg 768 432 46
fd 987 468 33
vb 580 674 35
dg 532 457 77
xf 568 367 44
dc 457 357 45
vb 567 345 32
df 476 367 35
vb 679 356 69

Если файл напе4атан в таком виде то строк типа delete(s,1,pos(';',s)); не будет,тк нет разделителя?
gotoXY(1,whereY);write('| ',sp[n].f); этой строкой перехожу к нужному месту и там вывожу список каждый?
Но так и не понял,как sp[n].f:=copy(s,1,pos(';',s)-1); эта строка будет выглядеть у меня...
И перед каждым блоком из этих 2(или всё таки 3?) строк будет readln(g,*[i]);?
Я правильно понял?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.03.2010, 11:09
Цитата Сообщение от BlueeYeS Посмотреть сообщение
delete(s,1,pos(';',s));
Я же написал, что если разделитель другой, то смените, раз у Вас пробел, то везде точку с запятой замените на пробел.
0
0 / 0 / 0
Регистрация: 16.10.2009
Сообщений: 12
01.03.2010, 12:08  [ТС]
Понял...спасибо

Добавлено через 22 минуты
Pascal
1
2
3
4
5
6
7
8
n:=0;
while not eof(f) do
   begin
readln(g,F[i]);
n:=n+1;
sp[n].F[i]:=copy(F[i],1,pos(' ',F[i])-1);
    gotoXY(1,whereY);write('*',sp[i].F[i]);
    delete(F[i],1,pos(' ',F[i]));
Похоже на правду?
sp[n]-это 4то?просто массив,которому присваивается зна4ения из файла но уже в программе?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.03.2010, 12:19
BlueeYeS, sp[n] это элемент массива записей из той программы, фрагмент которой я привел. Вам от нафиг нужен? У Вас туева хуча массивов, вот каждую часть строки в свой массив и пишите.
Типа
Pascal
1
2
3
4
5
6
7
8
9
10
var st:string;
     f:text;
     F:array[1..100] of string;
..............................
while not eof(f) do
   begin
    readln(f,st]);
    n:=n+1;
    F[n]:=copy(st,1,pos(' ',F[i])-1);
    ..............................
Мне кажется познания Ваши настолько глубоки, что нужно копить денежку и идти во Фриланс.
0
0 / 0 / 0
Регистрация: 16.10.2009
Сообщений: 12
01.03.2010, 14:03  [ТС]
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
uses crt;
const
n=20;
m=2;
var
F:array [1..n] of string[m];
s,rt,nF:array [1..n] of integer;
r:array [1..n] of real;
i:integer;
g:text;
z:string;
begin
clrscr;
z:='****************************';
assign(g,'table8.txt');
reset(g);
writeln('Isxodnie dannie');
writeln(z);
writeln('*voditeli*nomer*pyti*rasxod*');
writeln(z);
for i:=1 to n do begin
readln(g,F[i],nF[i],s[i],rt[i]);
writeln('*',F[i]:8,'*',nF[i]:5,'*',s[i]:4,'*',rt[i]:6,'*');
end;
close(g);
writeln(z);
 
writeln('Rasxod ot 8 do 10 litrov na 100 km');
writeln('*voditeli*rasxod*');
writeln('*****************');
for i:=1 to n do begin
 r[i]:=rt[i]/s[i]*100;
  if (r[i]>8)and(r[i]<10) then
    writeln('*',F[i]:8,'*',r[i]:6,'*');
  end;
writeln('*****************');
 
writeln('Rasxod >10 litrov na 100 km');
writeln('*voditeli*rasxod*');
writeln('*****************');
for i:=1 to n do begin
 r[i]:=rt[i]/s[i]*100;
  if r[i]>10 then
    writeln('*',F[i]:8,'*',r[i]:6,'*');
  end;
writeln('*****************');
end.
Вот работающий вариант программы...никаких goto,pos,copy...
и всё отли4но 4итает и выводит в виде
Pascal
1
2
readln(g,F[i],nF[i],s[i],rt[i]);
writeln('*',F[i]:8,'*',nF[i]:5,'*',s[i]:4,'*',rt[i]:6,'*');
Спасибо...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.03.2010, 14:03
Помогаю со студенческими работами здесь

Требуется напечатать список класса с указанием для каждого ученика количества его однофамильцев.
В символьном массиве хранятся фамилии и инициалы учеников класса. Требуется напечатать список класса с указанием для каждого ученика...

Напечатать список республик, указав плотность населения число школ и больниц, приходящихся на 1000 человек
Таджикистан, Молдавия, Украина. Напечатать список республик, указав плотность населения число школ и больниц, приходящихся на 1000 человек....

Составить программу, которая формирует список L, включив в него по одному разу элементы, которые входят в список L1 но не входят в список L2
Составить программу, которая формирует список L, включив в него по одному разу элементы, которые входят в список L1 но не входят в список...

Ввести свой возраст. Если возраст больше 18 лет, то напечатать фразу «ты- совершеннолетний», иначе напечатать – «до совершеннолетия осталось столько-т
Ввести свой возраст. Если возраст больше 18 лет, то напечатать фразу «ты- совершеннолетний», иначе напечатать – «до совершеннолетия...

Составить базу данных об учащихся. Составить программу позволяющую выводить полный список учащихся, список выбравших предмет, список лучших учеников
Составить базу данных об учащихся, предусмотрев поля: Ф.И.О., предметы по выбору, экзаменационные оценки по каждому из них. Составить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru