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

Программа обработки файла

24.10.2010, 23:38. Показов 1532. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно возникла проблема, очень прошу помощи !
Мне нужно написать программу обработки файла, где запрос вводится с клавиатуры. В программе предусмотреть варианты отсутствия данных по запросу.

Задание:
Ассортиментный список дамской обуви с указанием наименования и имеющегося в наличии числа пар каждой модели.
Артикул, наименование, количество, стоимость одной пары (артикул начинается с буквы Д для дамской обуви, М для мужской, П для детской).

Нам сказали что её нужно разделить на 2-а примера, т.е. 1-ый на запись в файл данных, а 2-ой на обработку этих данных ...

Пример 1: Текст программ создания и печати тестового файла
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
PROGRAM FILE_NEW;
TYPE zap=record
               fam:   string[20];
               otdel: string[30];
               god:   integer;
               oklad: real;
               end;
 
VAR
 
sved :file of zap;
X:zap;
k:integer;
 
BEGIN
 
Assign(sved,'sved.dat');
rewrite (sved);
k:=1;
     while k<=10 do
                 begin
                 writeln('Введите фамилию',k:3, ' сотрудника');
                 readln(x.fam);
                 writeln('Введите название отдела');
                 readln(x.otdel);
                 writeln('Введите год рождения');
                 readln(x.god);
                 writeln('Введите оклад');
                 readln(x.oklad);
                 K:=k+1;
                 write(sved,x);
                 end;
    writeln('Число записей в файле:',K:2);     writeln; 
    reset(sved);
    writeln('Данные файла');     writeln;   
              while not EOF (sved) do begin
              read(sved,x);
              writeln(x.fam:22,x.otdel:32,x.god:5,x.oklad:10:2);
              end;
    close(sved);
    end.
Пример 2: Исходный текст программы решения задачи Сведения о сотрудниках отдела
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
PROGRAM K_RABOTA;
TYPE zap=record
               fam:   string[20];
               otdel: string[30];
               god:   integer;
               oklad: real;
               end;
VAR
    sved: file of zap;
    X:    zap;
    n:    integer;
    fo:   array [1..10] of string [20];
    oko:  array [1..10] of real;
    opz:  string [30];
PROCEDURE OBRAB;  {Подпрограмма выбора данных}
BEGIN
Assign(sved,'sved.dat');
reset (sved);
n:=0;
    while not EOF (sved) do begin
              read(sved,x);
              if (opz=x.otdel) then begin
                     n:=n+1;
                     fo[n]:= x.fam;
oko[n]:=x.oklad;
                     end;
      end;
    close(sved);
writeln('Число сотрудников в отделе',opz:30, ':',n:3);
        END;
PROCEDURE SORT;    {Подпрограмма сортировки}
VAR
i,k:integer;
f:string [20];
c:real;
BEGIN
    for i:=1 to n-1 do
        for k:=i+1 to n do
            if oko[i]<oko[k] then begin
c:=oko[i];oko[i]:= oko[k];oko[k]:=c;
f:=fo[i];fo[i]:=fo[k];fo[k]:=f;
end;
END;
PROCEDURE VUVOD;{Подпрограмма вывода результата}
VAR 
i: integer;
BEGIN
writeln;
writeln('Список сотрудников отдела:', opz:30);writeln;
writeln('------------------------------------');
writeln('! N!     Фамилия       !   Оклад   !');
writeln('------------------------------------');
for i:=1 to n do
writeln('!',i:2,'!',fo[i]:20,'!',oko[i]:10:2,
        '!');
writeln('------------------------------------');writeln;
END;
 {ОСНОВНАЯ ПРОГРАММА}
  BEGIN
  WRITELN('Введите название отдела');
  READLN(opz);
  OBRAB;{Вызов процедуры выбора данных}  
  if n=0 then writeln ('Нет данных по отделу:', opz:30)
              else
          begin
              if n>1 then  SORT;     {Вызов процедуры сортировки}
              VUVOD;  {Вызов процедуры вывода результатов}
           end;     READLN;
     end.
С первым примером я разобрался, и то думаю с ошибками, вот листинг ...
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
PROGRAM OMG;
 
TYPE zap=record
               naimenovanie:   string[20];
               kolichestvo: integer;
               stoimost: real;
               end;
 
VAR
 
    sved: file of zap;
    X:    zap;
    z:    integer;
 
BEGIN
Assign(sved,'sved.dat');
reset (sved);
z:=1;
    while z<=10 do begin
              writeln('‚Введите наименование');
              readln(X.naimenovanie);
              writeln('‚Введите количество');
              readln(X.kolichestvo);
              writeln('‚Введите стоимость');
              readln(X.stoimost);
              Z:=z+1;
              write(sved,X);
              end;
              writeln('Количество пар:',Z:2); writeln;
              reset(sved);
              writeln('    '); writeln;
              while not EOF (sved) do begin
              read(sved,X);
              writeln(X.naimenovanie:22,X.kolichestvo:32,X.stoimost:10:2);
              end;
              end.
А со второй частью большая проблема, помогите пожалуйста, я не скуплюсь за помощь !
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.10.2010, 23:38
Ответы с готовыми решениями:

Запись подготовленных данных во внешний файл и программа обработки созданного внешнего файла.
ВОт надо программку написать)а я хз как( Подготовить данные об абитуриентах, поступающих в техникум. Информацию о каждом...

Программа обработки текстового файла
Помогите написать программу на Си! Дано: Текстовый файл inString.txt содержит список (столбец) слов русского языка - имён...

Программа для обработки типизированного файла
1)Разработать программу для обработки типизированного файла. Структура записи: фамилия студента и 2 оценки по предметам. Ввести с...

3
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
25.10.2010, 09:37
Цитата Сообщение от TaiLer Посмотреть сообщение
Текст программ создания и печати тестового файла
TaiLer, А зачем ты путаешь нас, ты же работаешь с типизированным файлом записей...

Цитата Сообщение от TaiLer Посмотреть сообщение
Мне нужно написать программу обработки файла, где запрос вводится с клавиатуры.
А какой запрос? Что в программе-то писать, что искать будем?

Добавлено через 1 час 0 минут
Вот такой пример.
1. Создание файла-базы.

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
uses crt;
type obuv=record
          nam:string[10];
          kol:word;
          art:string[10];
          end;
     tfile=file of obuv;
var f:tfile;
    z:obuv;
    c:char;
    i:integer;
begin
clrscr;
assign(f,'obuv.dat');
rewrite(f);
writeln('Введите сведения об обуви, окончание ввода Esc');
i:=0;
repeat
i:=i+1;
writeln('Наименование ',i);
with z do
 begin
  write(' название: ');readln(nam);
  write(' количество: ');readln(kol);
  repeat
  write(' артикул, первая буква Д,М,П: ');readln(art);
  until art[1] in ['Д','М','П'];
  write(f,z);
 end;
c:=readkey;
until c=#27;
close(f);
writeln('Файл с ассортиментом обуви записан!');
readln
end.
2. Поиск по первой букве артикула.
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
uses crt;
type obuv=record
          nam:string[10];
          kol:word;
          art:string[10];
          end;
     tfile=file of obuv;
var f:tfile;
    z:obuv;
    c:char;
    i,k:integer;
    nf:string;
begin
clrscr;
write('Имя файла для чтения: ');
readln(nf);
nf:=nf+'.dat';
assign(f,nf);
{$I-} reset(f);  {$I+}
if IOResult <> 0 then
 begin
  writeLn('Файл ',nf,' не найден!');
  writeLn('Работа программы завершена. Нажмите ENTER');
  readln;
  exit;
 end;
writeln('Какая обувь интересует? Д-дамская М-мужская П-детская');
readln(c);
writeln('------------------------------------------');
writeln('| Наименование | Количество |  Артикул   | ');
writeln('------------------------------------------');
k:=0;
while not eof(f) do
 begin
  read(f,z);
  if z.art[1]=c then
  with z do
   begin
    k:=1;
    gotoXY(1,whereY);write('| ',nam);
    gotoXY(16,whereY);write('| ',kol:8);
    gotoXY(29,whereY);write('| ',art);
    gotoXY(42,whereY);writeln('|');
   end;
 end;
writeln('------------------------------------------');
if k=0 then write('Извините, этой обуви в наличии нет');
close(f);
readln
end.
Добавлено через 50 секунд
Вот здесь более навороченный пример.
https://www.cyberforum.ru/pascal/thread172202.html
1
 Аватар для TaiLer
0 / 0 / 0
Регистрация: 14.10.2010
Сообщений: 5
25.10.2010, 16:15  [ТС]
Respect тебе Puporev
В четверг попробую сдать, думаю теперь не будут предираться !
0
 Аватар для TaiLer
0 / 0 / 0
Регистрация: 14.10.2010
Сообщений: 5
28.10.2010, 00:22  [ТС]
Ещё раз Спасибо тебе Puporev !
Сегодня сдал, в итоге "хорошо".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.10.2010, 00:22
Помогаю со студенческими работами здесь

Программа обработки файла типа запись
Здравствуйте!Помогите новичку,пожалуйста,понять ,в чем могут быть ошибки,долго не могу разобраться. Ошибка C2360 пропуск инициализации...

Программа файла обработки типа запись
Написать программу обработки файла типа запись, содержащую следующие пункты меню: «Создание», «Просмотр», «Коррекция» (добавление новых...

Программа для обработки типизированного файла
Нужна помощь,задание такое:написать программу для обработки типизированного файла записей(record) с информацией о продаваемых книгах.каждая...

Программа обработки массива, считываемого из файла: посчитать ниже побочной диагонали
Задание для самостоятельной работы Написать программу обработки массива, считываемого из файла. Программа должна выполнять операции: ...

Изменить программу (программа считывает исходные данные из файла. Процедура обработки находится в юните отличном от основного)
Помогите решить проблему.. Процедура Р создает массив из элементов z, удовлетворяющих условию F1(z)&lt;F2(z). Для каждой строки матрицы...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru