imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 28.03.2007, 16:25     # 1
Wild Orchid
Guest
 
Сообщения: n/a

Question Задание на файлы в Турбопаскале 7.0.

Кому не сложно, помогите, пожалуйста с заданием на файлы в Турбопаскале. Для меня это, к сожалению, тёмный лес... Задачка сложная, но если кто возьмётся, буду очень благодарна! Вот она...

Овощной магазин.doc
 
Старый 29.03.2007, 07:08     # 2
CPUser
Junior Member
 
Аватар для CPUser
 
Регистрация: 26.09.2004
Адрес: в Интернете
Сообщения: 138

CPUser Известность не заставит себя ждать
Цитата:
Сообщение от Wild Orchid Посмотреть сообщение
Кому не сложно, помогите, пожалуйста с заданием на файлы в Турбопаскале. Для меня это, к сожалению, тёмный лес... Задачка сложная, но если кто возьмётся, буду очень благодарна! Вот она...

Вложение 55137
Цитата:
В овощном магазине имеется информация об ассортименте овощей, включающая: название (капуста, картофель, лук, чеснок, морковь, свёкла), а также цену, дату поступления и количество. Вам необходимо сделать следующее:
1. Обеспечить приём данных с клавиатуры в режиме диалога и запись их в файл.
2. После приёма данных программа должна рассортировать введённые данные по названию и записать их в различные файлы в порядке убывания стоимости, а при равенстве - в порядке возрастания количества.
3. После этого необходимо проверить наличие файлов на диске и распечатать список имеющихся файлов с краткими пояснениями о том, что находится в каждом файле. Кроме того, должна быть обеспечена возможность перехода в начало программы для добавления новых данных, а также возможность окончания работы с программой.
4. Затем должна быть обеспечена возможность выбора интересующего файла и распечатка его содержимого в окне белого цвета красными буквами (весь остальной экран должен быть голубого цвета).
5. После просмотра интересующего файла необходимо вернуться к пункту 3.
Очевидное решение (выглядит не супер, никаких доп. проверок на корректность данных нет - только выполнение задания - дорисуйте на свой вкус ):

Код:
program veg_shop; {Made by Paul Safre aka CPUser}

uses Crt;

type
    vgtbl=record
                tname:string[10];
                pric,amou:integer;
                dat:string[10];
    end;

var
   vti:array[1..6] of vgtbl;

   curr,c2:byte;
   sa,sb:integer; {sorting purposes}
   sc:vgtbl; {same p. - 4 swap}
   sf:string[14]; {a string for filenames}

   f1:file of vgtbl;



label
   inp,einp,chk,rk1,rk2;



begin



{Stage 1 ;)}

     curr:=0;

     TextColor(white);
     TextBackground(black);
     ClrScr;
     writeln('Vegetable shop. v.1.0b');
     writeln('______________________');
     writeln('');


inp: inc(curr,1);
     writeln('');
     write('Veg.type (0 for none):');
     readln(vti[curr].tname);
     if vti[curr].tname='0' then
        begin
             curr:=curr-1;
             goto einp;
        end;

             write('Its price:');
             readln(vti[curr].pric);

             write('Its delivery date:');
             readln(vti[curr].dat);

             write('Its amount:');
             readln(vti[curr].amou);


             writeln('');

             goto inp;

einp:        assign(f1,'vgtbl_db');
             rewrite(f1);
             for c2:=1 to curr do
                 write(f1,vti[c2]);
             close(f1);

{Stage 2}

       {Name sorting}
for sa:=1 to curr-1 do
    for sb:=sa+1 to curr do
        begin
             if vti[sa].tname>vti[sb].tname then
                begin
                     sc:=vti[sa];
                     vti[sa]:=vti[sb];
                     vti[sb]:=sc
                end; {of IF}
        end;

        {Further sorting}

for sa:=1 to curr-1 do
    for sb:=sa to curr do
        begin
             if vti[sa].pric<vti[sb].pric then
                begin
                     sc:=vti[sa];
                     vti[sa]:=vti[sb];
                     vti[sb]:=sc
                end; {of IF}
             if (vti[sa].pric=vti[sb].pric) and (vti[sa].amou>vti[sb].amou) then
                begin
                     sc:=vti[sa];
                     vti[sa]:=vti[sb];
                     vti[sb]:=sc
                end; {of IF}
        end;


    for sa:=1 to curr do
        begin
             assign(f1,vti[sa].tname+'.dat');
             rewrite(f1);
             write(f1,vti[sa]);
             close(f1);
        end;


{Stage3}


chk:  for sa:=1 to curr do
        begin
             writeln('');
             sf:=vti[sa].tname+'.dat';
             assign(f1,sf);
             reset(f1);
             read(f1,sc);
             close(f1);
             write(sf+' was');
             TextColor(green);
             write(' successfully found ');
             TextColor(white);
             writeln('with the information about '+sc.tname+' in it!');
        end;


rk1: writeln('');
writeln('__________________');
writeln('');
writeln('What would you like to do now?');
writeln('[q] - quit the program');
writeln('[i] - add some products');
writeln('[p] - print a file (in the console)');
sf:=readkey;

if sf='q' then halt(0);
if sf='i' then goto inp;
if sf='p' then
            begin

              for sa:=1 to curr do
              begin
               write(sa);
               writeln(' - '+vti[sa].tname+'.dat');
              end; {of FOR}

rk2:          sf:=readkey;
              val(sf,sa,sb);
              if (sa<1) or (sa>curr) then goto rk2;



              TextBackground(blue);
              ClrScr;
              TextColor(red);

              window(20,7,50,21);
              GotoXY(1,1);
              TextBackground(white);
              ClrScr;

              writeln('');
              writeln('Product name:');
              writeln(vti[sa].tname);
              writeln('');
              writeln('Price:');
              writeln(vti[sa].pric:2);
              writeln('');
              writeln('Delivery date:');
              writeln(vti[sa].dat);
              writeln('');
              writeln('Amount:');
              writeln(vti[sa].amou:2);
              writeln('');
              write('[Strike any key to continue]');

              readkey;

              window(1,1,80,25);
              TextBackground(black);
              ClrScr;
              TextColor(white);

            end;

goto rk1;


end.
P.S. В приложении откомпиллированная программка
Вложения
Тип файла: zip VEGSHOP2.zip (5.3 Кбайт, 3 просмотров - Кто скачивал? )
CPUser вне форума  
Старый 29.03.2007, 12:55     # 3
Wild Orchid
Guest
 
Сообщения: n/a

Большое-большое тебе спасибо! Я почти счастлива! Только не очень понятно, где в программе ограничение на ввод данных? Я так поняла, я сама должна его написать или я чего-то не вижу?
З.Ы.: Ещё раз спасибо
 
Старый 29.03.2007, 17:12     # 4
CPUser
Junior Member
 
Аватар для CPUser
 
Регистрация: 26.09.2004
Адрес: в Интернете
Сообщения: 138

CPUser Известность не заставит себя ждать
Цитата:
Сообщение от Wild Orchid Посмотреть сообщение
Только не очень понятно, где в программе ограничение на ввод данных? Я так поняла, я сама должна его написать или я чего-то не вижу?

Цитата:
Сообщение от CPUser Посмотреть сообщение
никаких доп. проверок на корректность данных нет - только выполнение задания - дорисуйте на свой вкус ):
Добавить ограничение на ввод данных, я полагаю, не будет слишком сложно. Насколько способен понять, проблема у Вас заключалась в написании модуля работы с файлами, который в вышеприведенном листинге присутствует.
По поводу интерфейса, вроде, уже говорил...

"Спасибы" просьба в репутацию!
CPUser вне форума  
Старый 15.04.2007, 21:27     # 5
Яночка
Guest
 
Сообщения: n/a

Люди, помогите пожалуйста! Нам скоро курсовую по программированию сдавать, а я не успеваю сделать все задания. Кто может, пожалуйста решите такую задачку:

Один из играющих задумывает число от 1 до 1000, другой пытается угадать его за десять вопросов вида: верно ли, что задуманое число больще такого-то числа? Написать программу, работающую за отгадчика.


Заранее благодарю!
 
Старый 16.04.2007, 00:20     # 6
CPUser
Junior Member
 
Аватар для CPUser
 
Регистрация: 26.09.2004
Адрес: в Интернете
Сообщения: 138

CPUser Известность не заставит себя ждать
2 Яночка:
Программку составил; код Вам будет виден, как только общее Ваше количество публикаций ("постов") на форуме будет равным или больше пяти.

Сделано мной это было умышленно, по причине вероятности того, что Ваш аккаунт является зеркалом аккаунта Wild Orchid, что означало бы нежелание соответствующего "мультиаккаунтовода" участвовать в форуме иным образом, как получая с него информацию, не предоставляя ничего взамен, да еще и "напрягая" своими запросами форумчан, что мной трактуется как негативное поведение в виртуальной среде и ни в коем случае не одобряется...

Простите, если мои умозаключения оказались ошибочными, но и в этом случае, я полагаю, Вам было бы полезно почитать публикации остальных "имховцев", оставив на форуме свой след в виде четырех "постов"-комментариев - это не трудно.


Последний раз редактировалось Plague; 16.04.2007 в 01:14. Причина: изменил планку хайда
CPUser вне форума  
Старый 16.04.2007, 01:13     # 7
Plague
Administrator
 
Аватар для Plague
 
Регистрация: 06.05.2003
Адрес: Московская Подводная Лодка
Пол: Male
Сообщения: 12 063

Plague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague Демиург
Plague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague Демиург
Цитата:
Сообщение от CPUser Посмотреть сообщение
Программку составил; код Вам будет виден, как только общее Ваше количество публикаций ("постов") на форуме будет равным или больше пяти.
головой думай!!!!

если есть подозрения на мультиакк, - сообщи об этом администрации, а не устраивай саморасследований, и не провоцируй пользователей на флуд
__________________
все "спасибы" - в приват и в репутацию! не засоряйте форум!!!!
~~~~~~~~~~~~~~~~~~~~~~

The time has come it is quite clear, our antichrist is almost already here.
M.M.
Plague вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 02:09.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.