Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 17
1

Кто может написать алгоритм для готовой программы?

23.05.2013, 10:31. Показов 577. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
97
98
99
100
101
102
103
104
105
106
107
108
109
uses crt;                    //подключен модуль crt для организации ввода-вывода в отдельном окне
type tovar=record            //тип - запись
     nomer: integer;         //переменная для порядкового номера
     nazva: string [20];     //переменная для названия товара, тип строка, ограниченный размер - 20 символов
     kolvo: integer;         //переменная для количества товара
     zena : real;            //переменная цена, на всякий случай вещественного типа
     end;
f_tovar=file of tovar;      //тип - файл записей
 
var f,g:f_tovar;            //переменные f и g - файлы записей
    file1_name,file2_name: string; //переменные для имен файлов
    vybor: byte;                   //переменная для считывания выбора пользователя
 
//процедура ввода или добавления записи в файл, если файл уже существует, то, в принципе, не нужна
procedure Vvodf(ff: f_tovar);
//вспомогательные переменные
var zapis:tovar;            //запись
    reshenie: char;         //переменная символьного типа для решения о внесении еще одной записи в файл
begin
if FileExists(file1_name) then reset(ff)    //если файл уже существует, то открыть его для чтения (и добавления записи, в нашем случае)
   else rewrite(ff);                        //иначе - открыть для записи (в нашем случае - создать для записи)
repeat                                      //цикл с постусловием, будет повторяться, пока пользователь будет соглашаться ввести еще запись
 with zapis do                              //обращение к полям записи
      begin
      write ('Порядковый номер: '); readln (nomer);  //запрашиваем и считываем порядковый номер
      write ('Название товара: ');  readln (nazva);  //запрашиваем и считываем название товара
      write ('Количество товара: ');readln (kolvo);  //запрашиваем и считываем количество
      write ('Цена за единицу: ');  readln (zena);   //запрашиваем и считываем цену
      seek(ff,filesize(f));                  //перемещаем файловый указатель после последней записи
      write(ff,zapis);                       //дописываем запись в файл
      end;
writeln('');
write('Внести еще запись? (y/n)'); readln(reshenie);  //запрашиваем и считываем решение о вводе следующей записи
until reshenie='n';                           //цикл с постусловием выполняется, пока пользователь не введет "n"
close(ff);                                    //закрываем файл
end;
 
//процедура вывода содержимого файла на экран
procedure vivodf(ff:f_tovar);
const linija='--------------------------------------------------------';  //константа - линия для таблицы
      shapka='|Номер|      Наименование      |Количество|    Цена    |';  //константа - шапка таблицы
var zapis:tovar;      //вспомогательная переменная - запись
 
begin
clrscr;                //очистить экран
reset(ff);             //открыть файл для чтения
seek(ff,0);            //установить файловый указатель в нулевую (начальную) позицию (в принципе, это не обязательная процедура, так как reset автоматически устанавливает указатель в начало, но так было в примере..)
//создаем таблицу, в которую будут выведены данные
writeln(linija);       //рисуем "линию"
writeln(shapka);       //выводим шапку
writeln(linija);       //рисуем "линию"
while not eof(ff) do   //в цикле с предусловием, пока не дойдем до конца файла, выполнять
     begin
     read(ff,zapis);   //считать запись из файла
     with zapis do     //обращение к полям записи
          //вывод полей записи в таблицу
          writeln('|',nomer:4,'|':2,nazva:22,'|':3,kolvo:7,'|':4,zena:9:2,'|':4);
     end;
writeln(linija);      //рисуем "линию", которая закроет таблицу
close(ff);            //закрываем файл
writeln('Enter to continue..'); readln;   //ожидаем нажатия любой клавиши, можно и Enter
end;
 
//процедура поиска и вывода в другой файл записей по условию
procedure Poisk(file1,file2: f_tovar);
//вспомогательные переменные
var zapis:tovar;          //запись
    k: real;              //некое число К, по условию, надо найти товары, с ценой,  превосходящей К
begin
write('K='); readln(k);   //запрашиваем и считываем К
reset(file1);             //исходный (первый) файл открываем для чтения
rewrite(file2);           //итоговый (второй) файл открываем для записи
seek(file1,0);            //устанавливаем курсор в начало первого файла
while not (eof(file1)) do //в цикле с предусловием, пока не достигнем конца первого файла, выполнять
      begin
      read(file1,zapis);        //считываем запись из исходного файла
      if zapis.zena>k then      //если значение поля записи "цена" превышает К
         write(file2,zapis);    //записываем эту запись в итоговый (второй) файл
      end;
close(file1);                   //закрываем файлы
close(file2);
writeln('Enter to continue..'); readln;   //ожидаем нажатия любой клавиши, можно и Enter
end;
 
 
begin
write('Введите имя исходного файла: '); // вводится полностью путь к каталогу(d:\папка\имя файла)
readln (file1_name);                    //считываем переменную - имя первого (исходного)  файла
write('Введите имя итогового файла: '); // вводится полностью путь к каталогу(d:\папка\имя файла)
readln (file2_name);                    //считываем переменную - имя второго (итогового)  файла
assign(f,file1_name);                   //ассоциируем переменную с первым файлом
assign(g,file2_name);                   //ассоциируем переменную со вторым файлом
repeat                                  //цикл с постусловием
clrscr;                                 //очистить экран
//выводим "меню"
writeln('1-внести / добавить данные в исходный файл');
writeln('3-вывести содержимое исходного файла');
writeln('4-вывести содержимое итогового файла');
writeln('0-завершить работу');
readln(vybor);        //считываем выбор пользователя
case vybor of         //оператор множественного выбора для обработки выбора пользователя
1:  Vvodf(f);         //запуск процедуры:  ввод данных в исходный файл
2:  Poisk(f,g);       //запуск процедуры:  поиск данных, удовлетворяющих условию, и запись их в итоговый файл
3:  vivodf(f);        //запуск процедуры: вывод исходного файла
4:  vivodf(g);        //запуск процедуры: вывод итогового файла
else vybor:=0;        //если введено другое значение, присваиваем переменной выбора значение 0
end;                  //конец множественного оператора выбора
until vybor=0;        //цикл с постусловием повторяется, пока  польователь не введет 0 - завершение работы
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2013, 10:31
Ответы с готовыми решениями:

Кто может составить алгоритм по проге? Алгоритм нужен для отчета если вам это интересно)
uses crt; var a:array of integer; b:array of integer; i,j,m,n:integer; begin ClrScr;...

Кто может обьяснить алгоритм подсчета различных букв в слове?
Обьясните пожалуйста алгоритм: { Составить программу подсчета различных букв в слове. } var...

Кто может написать код к одному условию?
вот условие-решите одну из них ...

Алгоритм программы шифрования данных может кто написать?
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> #include <time.h>...

0
23.05.2013, 10:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.05.2013, 10:31
Помогаю со студенческими работами здесь

Кто может объяснить алгоритм работы программы?
что делает программа я знаю, но в коде разобраться не могу. Нужен алгоритм, помогите пожалуйста,...

Кто может объяснить алгоритм программы? Как она работает?
Нужно позарез. Реально помогите кто что знает. Рисую алгоритмы нужно разобраться, плс. коменты...

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

Кто может написать программу для разложения числа N на множители?
Необходимо написать программу дла разложения числа N на простые множители на C++. Помогите...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru