Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Турбо Паскаль. Программирование на 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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ]
Модераторы: paradise, KMA
  

nik007


Удален

Привет всем!!! подскажите что тут не правельно???

program pr_1;
type
car=record
end;
var
i:integer;
marca:string;
god:integer;
color:string;
namber:integer;
f1:text;
f2:text;
begin
assign(f1,'car.dat');
rewrite(f1);
for i:=1 to 2 do
begin
writeln('введите марку машины');
readln(marca);
writeln('введите год выпуска');
readln(god);
writeln('введите цвет');
readln(color);
writeln('введите номер');
readln(namber);
end;
close(f1);
assign(f1,'car.dat');
reset(f1);
assign(f2,'carbleck.txt');
rewrite(f2);
while not eof (f1) do if color='чёрный'
then write (f2, ' marca, god, color, namber');
close(f1);
close(f2);
assign(f2,'carbleck.txt');
reset(f2);
while not eof (f2) do write (f2, 'marca, god, color, namber');
close(f2);
end.

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 16 нояб. 2006 10:51 | IP
KMA



Долгожитель

Вау, а слабо условие задачи сказать???
Если так рассуждать, то все верно записано.
Только надо assign два раза использовать, ты один раз связываешь переменную с именем файла (если конечно потом не хочешь его переоределить), поэтому писать одно и то же, т. е. assign (f1, 'car.dat') немного неправильно )

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 16 нояб. 2006 22:24 | IP
nik007


Удален

Привет!!
Создать нетекстовый файл car.dat, содержащий информацию о машинах ( марка, год выпуска, цвет, номер ). Переписать в текстовый файл информацию о машинах чёрного цвета, упорядоченную в порядке убывания года выпуска.

Последнего у меня нет! Если не трудно, то напиши буду очень благодарен !!!

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 17 нояб. 2006 8:11 | IP
KMA



Долгожитель

Так, ну во-первых ты должен создать запись типа car:

car=record
 marka: string [15]; {марка}
 year: word; {год}
 color: string [10]; {цвет}
 number: string [6]; {номер}
end;


Я не знаю, толком, как вы именно хотите работать с информацией, но я обычно препочитаю массивы (при этом динамические), но здесь я буду использовать самый обыкновенный, состоящий примерно из 20 элементов (думаю, больше машин черного цвета не будет).

Итак, заводим массив:
found: array [1..20] of car;
buf: car; {вспомогательная переменная}
fCar: file of car; {файл с хранимыми машинами}
fFound: text; {текстовый файл}


Теперь можно приступить к самому коду программы:

BEGIN
         assign (fCar, 'car.dat');
         assign (fFound, 'carBlack.txt');
         
         {открываю файл car.dat для записи}
          ReWrite (fCar);
          writeLn ('Сколько записей вы хотите добавить ->');
          readLn (n);
          {записываю в него всю информацию}
          for j:=1 to n do
            begin
              write ('Марка машины ->');
              readLn (buf.marka);
              write ('Год машины ->');
              readLn (buf.year);
              write ('Цвет машины ->');
              readLn (buf.color);
              write ('Номер  машины ->');
              readLn (buf.number);
             
              write (fCar, buf)
            end;
          close (fCar); {сохранил все записи}

          {Открываю файл заново и считываю в массив found машины у которых цвет черный}
           reSet (fCar);
           k:=0;
           while not eof (fCar) do
             begin
                read (fCar, buf);
                if (buf.color='черный') or (buf.color='black')
                   then
                     begin
                      inc (k);
                      found[k]:=buf
                     end
             end;
           close (fCar);
           {теперь сортируем массив по годам, если таковые есть, если же нет, то k=0, я просто не пишу это условие, поскольку это не столь важно, т. к. излагаю только суть вопроса}
          for i:=1 to k-1 do
           for j:=1 to k-1 do
               if found[j].year > found[j+1].year  
                  then
                    begin
                      buf:=found[j];
                      found[j]:=found[j+1];
                      found[j+1]:=buf;
                    end;  
          {теперь у нас есть массив, отсортированный осталось только записать его в текстовый файл}
             reWrite (fFound);
            for j:=1 to k do
             begin
               with found[j] do
                begin
                 write (fFound, marka+' ');
                 write (fFound, year);
                 writeLn (fFound, ' '+color+' '+number);
                end
             end;
            close (fFound)  
END;

Вот должно получиться что-то типа этого.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 17 нояб. 2006 14:32 | IP
nik007


Удален

Привт.



Привет! Тут ошибочка вышла, может быть  так, а то он пишет
found= array [1..20] of car;
buf=car; {вспомогательная переменная}
fCar=file of car; {файл с хранимыми машинами}
fFound=text; {текстовый файл}  

90: “=” expected

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 17 нояб. 2006 16:34 | IP
nik007


Удален

Но даже если сделать так, то позже  на строке    assign (fCar, 'car.dat'); ожидается символ ‘’(‘’ , сразу после car перед запятой. А var тут создавать ненадо??

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 17 нояб. 2006 17:14 | IP
KMA



Долгожитель

^$@#*$@, ты вообще понимаешь что ты делаешь или нет.
Естественно надо:
Type
car=record
marka: string [15]; {марка}
year: word; {год}
color: string [10]; {цвет}
number: string [6]; {номер}
end;

VAR
   found: array [1..20] of car;
  buf: car; {вспомогательная переменная}
  fCar: file of car; {файл с хранимыми машинами}
  fFound: text; {текстовый файл}
  i, j, k: byte;


Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 17 нояб. 2006 19:41 | IP
Guest



Новичок

Да я уже сам разобрался ! Просто стормози малость!!! Огроменное спасибо! Чем я могу тебя отблагодорить??

Всего сообщений: Нет | Присоединился: Never | Отправлено: 17 нояб. 2006 20:09 | IP
KMA



Долгожитель

не знаю даже, мне никто не предлагал помощь.
Можешь, если то 1000000 $ мне бы на первое время хватило
А если серьезно, то просто следи за тем, что ты пишешь и главное, понимай других людей.

P. S. Прошу прощения за оффтопик.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 17 нояб. 2006 20:18 | IP
flower


Новичок

Привет всем!Пожалуйста помогите решить задачу!Создать нетекстовый файл о сотрудниках(фамилию,имя,номер телефона)1)Найти номер телефона по фамилии сотрудника.2)Переписать в алфавитном порядке в текстовый файл инфу о сотрудниках, у которых первые цифры телефона 41.Очень срочно нужно,в понедельник экзамен!!Заранее спасибо!

Всего сообщений: 1 | Присоединился: декабрь 2013 | Отправлено: 18 нояб. 2006 16:32 | IP

Эта тема закрыта, новые ответы не принимаются

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ]

Форум работает на скрипте © Ikonboard.com