Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
7 / 7 / 1
Регистрация: 09.07.2009
Сообщений: 148
1

Проверьте программку, господа программисты)

03.04.2010, 19:39. Показов 653. Ответов 7
Метки нет (Все метки)

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
program obrabotka_files;
uses crt;
const t='tovar.dat';
type
tovar=record
            name:string [20];
            zena:real;
            kolich:longint;
            end;
var f: file of tovar;
s:tovar;
procedure out_fil;
var a:array [1..20] of tovar;
i, j:integer;
          begin
               assign(F,t);
{$I-}        { отключаем автоматический контроль }
               Reset (F);
               { получили код результата }
               if IoResult <> 0 then
               begin      { возникла ошибка! }
                    Write(' Ошибка при открытии файла: ');
                    Case IoResult of
                         1 : Writeln ('Файл не найден');
                         3 : Writeln ('Маршрут не найден');
                         4 : Writeln ('Слишком много открытых файлов');
                         5 : Writeln ('Доступ к файлу запрещен');
                         12 : Writeln ('Некорректный код доступа к файлам')
                        else
                         Writeln('Неизвестный код ошибки');
                            end
                        end;
   {$I+}       { включаем автоматический контроль   }
 
               i:=1;
               repeat
                     read (f,s);
                     a[i]:=s;
                     i:=i+1;
               until EOF(f);
               rewrite(f);
              for j:=1 to i-1 do
                              write (F,a[j]);
               repeat
                     writeln ('Введите наименование товара или * (признак конца ввода)');
                     readln (s.name);
                            if s.name<> '*' then
                                                begin
                                                     writeln ('Введите цену');
                                                     readln (s.zena);
                                                     writeln ('Введите количество');
                                                     readln (s.kolich);
                                                     write (F,s);
                                                end;
               until s.name='*';
 
               close(f);
          end;
{--------------------------------------------------------------}
procedure input_fil;
          begin
               assign(F,t);
 
               {$I-}        { отключаем автоматический контроль }
               Reset (F);
               { получили код результата }
               if IoResult <> 0 then
               begin      { возникла ошибка! }
                    Write(' Ошибка при открытии файла: ');
                         case IoResult of
                         1 : Writeln ('Файл не найден');
                         3 : Writeln ('Маршрут не найден');
                         4 : Writeln ('Слишком много открытых файлов');
                         5 : Writeln ('Доступ к файлу запрещен');
                         12 : Writeln ('Некорректный код доступа к файлам')
                              else
                                       Writeln('Неизвестный код ошибки');
                                            end
                                            end;
                                            {$I+}       { включаем автоматический контроль   }
 
               repeat
                     read (f,s);
                     writeln(s.name, ' ' , s.zena:5:2, ' ', s.kolich);
               until EOF(f);
               close(f);
          end;
{----------------------------------------}
begin
clrscr;
gotoxy (15,8);
writeln ('Программу разработал великий и ужастный гуру всех программеров');
gotoxy (10,10);
writeln ('Программа предназначена для ввода записей с клавиатуры');
gotoxy (15,11);
writeln ('записи их в файл и чтения из файла');
gotoxy (10,13);
writeln ('Запись в файл');
out_fil;
gotoxy (10,13);
writeln ('Чтение из файла');
 clrscr;
input_fil;
gotoxy (10,20);
writeln('Нажмите любую клавишу');
readln;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.04.2010, 19:39
Ответы с готовыми решениями:

Здравствуйте господа программисты и сисадмины
Здравствуйте господа программисты и сисадмины... можете мне помочь. ? мне нужно написать програмку...

Господа программисты,не справляюсь с классами,нужно ваше содействие
Создать базовый класс Triad (тройка чисел) с операциями сложения с числом, умножения на число,...

Проверьте, господа-учителя)
вот сделал программу и не знаю, может что-то упустил само задание следущее: вычислить сумму и...

Господа программисты есть идея создать игру. Давайте объединимся
Итак есть идея создать онлайн игру. Игра платная, приносящая доход владельцам. Предложение такое:...

7
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
03.04.2010, 20:56 2
Тип данных в файле: Вещественные числа
type
tovar=record
name:string [20];
zena:real;
kolich:longint;
end;
???? Откуда Вы это содрали и какое это имеет отношение к файлу вещественных чисел file of real?

Добавлено через 1 минуту
Цитата Сообщение от GL_Loney Посмотреть сообщение
так как в её написании принимал не только я один участие.
Даже примерно догадываюсь кто еще принимал участие, а точнее кто ее писал.
1
7 / 7 / 1
Регистрация: 09.07.2009
Сообщений: 148
04.04.2010, 11:02  [ТС] 3
Цитата Сообщение от Puporev Посмотреть сообщение
???? Откуда Вы это содрали и какое это имеет отношение к файлу вещественных чисел file of real?

Добавлено через 1 минуту

Даже примерно догадываюсь кто еще принимал участие, а точнее кто ее писал.
Хм, если честно без понятия, это программа одногруппника, он её заказывал

Но у меня немного другой вариант, я подправил под себя, но не не уверен. По-этому решил удостовериться, что все верно с критериями моего задания)
+ если честно, мне здесь многие моменты непонятны, не знаю, что там за мего программист писал, но когда препод увидел эту программу у моего одногруппника, сказал, чтобы переделывал, ибо не правильно, и чтобы писал сам)
Походу он просто сам ничего не понял в ней, а если уж сам не понял, то подумал, что студент такое написать не может, ну с его уровнем по крайней мере.

Так тчо не знаю с кем у Вас ассоциации шли, но я думаю они ложные (:

Добавлено через 13 часов 37 минут
Цитата Сообщение от Puporev Посмотреть сообщение
???? Откуда Вы это содрали и какое это имеет отношение к файлу вещественных чисел file of real?
Это просто другой вариант с другими критериями к заданию)
Не подскажите, как переделать в вещественные числа?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
04.04.2010, 11:27 4
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
uses crt;
const nmax=100;
type fail=file of real;
     mas=array[1..nmax] of real;
procedure WriteFile(var f:fail;a:mas;n:byte);
var i:byte;
    name:string;
begin
write('Имя файла для записи: ');
readln(name);
name:=name+'.txt';
assign(f,name);
rewrite(f);
for i:=1 to n do
write(f,a[i]);
close(f);
end;
procedure Readfile(var f:fail);
var x:real;
    name:string;
begin
write('Имя файла для чтения: ');
readln(name);
name:=name+'.txt';
assign(f,name);
{$I-} reset(f);  {$I+}
if IOResult <> 0 then
 begin
  writeLn('Не могу открыть файл ',name);
  writeLn('Работа программы завершена. Нажмите ENTER');
  readln;
  exit;
 end;
writeln('Содержание файла:');
while not eof(f) do
 begin
  read(f,x);
  write(x:0:2,' ');
 end;
close(f);
end;
var a:mas;
    f:fail;
    n,i:byte;
begin
clrscr;
repeat
write('Размер масива до ',nmax,'=');
readln(n);
if not n in [1..nmax] then writeln('Неверное значение, повторите ввод.');
until n in[1..nmax];
writeln('Введите в массив ',n,' действительных чисел:');
for i:=1 to n do
 begin
  write('el[',i,']=');
  readln(a[i]);
 end;
WriteFile(f,a,n);
ReadFile(f);
readln
end.
Добавлено через 51 секунду
Вывод данных о разработчике пишите сами, только не списывайте с той программы, там товарищ просто пошутил.
1
7 / 7 / 1
Регистрация: 09.07.2009
Сообщений: 148
04.04.2010, 13:26  [ТС] 5
Цитата Сообщение от Puporev Посмотреть сообщение
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
uses crt;
const nmax=100;
type fail=file of real;
     mas=array[1..nmax] of real;
procedure WriteFile(var f:fail;a:mas;n:byte);
var i:byte;
    name:string;
begin
write('Имя файла для записи: ');
readln(name);
name:=name+'.txt';
assign(f,name);
rewrite(f);
for i:=1 to n do
write(f,a[i]);
close(f);
end;
procedure Readfile(var f:fail);
var x:real;
    name:string;
begin
write('Имя файла для чтения: ');
readln(name);
name:=name+'.txt';
assign(f,name);
{$I-} reset(f);  {$I+}
if IOResult <> 0 then
 begin
  writeLn('Не могу открыть файл ',name);
  writeLn('Работа программы завершена. Нажмите ENTER');
  readln;
  exit;
 end;
writeln('Содержание файла:');
while not eof(f) do
 begin
  read(f,x);
  write(x:0:2,' ');
 end;
close(f);
end;
var a:mas;
    f:fail;
    n,i:byte;
begin
clrscr;
repeat
write('Размер масива до ',nmax,'=');
readln(n);
if not n in [1..nmax] then writeln('Неверное значение, повторите ввод.');
until n in[1..nmax];
writeln('Введите в массив ',n,' действительных чисел:');
for i:=1 to n do
 begin
  write('el[',i,']=');
  readln(a[i]);
 end;
WriteFile(f,a,n);
ReadFile(f);
readln
end.
Добавлено через 51 секунду
Вывод данных о разработчике пишите сами, только не списывайте с той программы, там товарищ просто пошутил.
Хм, спасибо) Ваша программа намного понятнее и проще)
У меня только ошибку выдает, такого вида: name+.pas(6,1) Fatal: Syntax error, "OF" expected but "PROCEDURE" found
Что не так?
И ещё, я так понял точный пусть, где файл должен создаваться указывать не нужно, он создается там, где находиться программа?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
04.04.2010, 13:42 6
Цитата Сообщение от GL_Loney Посмотреть сообщение
он создается там, где находиться программа?
Именно так, можете указывать и полный путь, кроме расширения, без разницы.
А скопировать готовый код и ничего там не трогая своими кривыми ручонками, это конечно невозможно.
Если еще и моя программа не заработает, застрелитесь.
Вложения
Тип файла: rar 7.rar (704 байт, 5 просмотров)
1
7 / 7 / 1
Регистрация: 09.07.2009
Сообщений: 148
04.04.2010, 14:15  [ТС] 7
Цитата Сообщение от Puporev Посмотреть сообщение
Именно так, можете указывать и полный путь, кроме расширения, без разницы.
А скопировать готовый код и ничего там не трогая своими кривыми ручонками, это конечно невозможно.
Если еще и моя программа не заработает, застрелитесь.
Неа, я не скопировал, в ручную переписывал чтобы машинно запомнить функции и прочее)))
Работает, урааа) Спасибо, что выдержали мой алегофренизм в программирование) Искренне признателен (:
0
Puporev
04.04.2010, 14:19     Проверьте программку, господа программисты)
  #8

Не по теме:

Правильно олигофренизм

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.04.2010, 14:19

Проверьте маленькую программку
Вычислить сумму по модулю 2, значений 22-ух ячеек памяти с адреса 0117h. (ДЛЯ МП К580ВМ80)...

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

Проверьте, пожалуйста, программку (Анализ работы магистрали передачи данных)
Уважаемые форумчане, ниже изложено условие задачи и мой вариант ее решения. Скажите, пожалуйста,...

Программисты, ищу совет.Проверьте кто-нибудь или я правильно пишу программу определения возраста человека?
Программисты, нужна помощь .Проверьте кто-нибудь или я правильно пишу программу определения...


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

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