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

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

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

Студворк — интернет-сервис помощи студентам
В общем переписал программку, от вас требуется помощь в её проверке, вроде все работает нормально, но я не уверен, так как в её написании принимал не только я один участие.

Смысл программы в том, что она должна выполнять заданные последовательности действий над данными определенного типа.

Есть определенные нюансы, которые нужно задействовать в программе, в них-то у меня и возникают сомнения.

Программа должна выполнять:
– вывод сообщения о разработчике и о назначении программы;
– ввод данных в режиме диалога.
Сохранение данных в файле и чтение данных из файла организовать как процедуру или функцию.

Тип данных в файле: Вещественные числа
Вариант задания имени файла: Ввод с клавиатуры
Вариант вывода сообщений об ошибках: Краткий
Вариант цепочки операций над данными: Ввод с клавиатуры и запись в массив, запись из массива в файл, чтение из файла и вывод на экран.

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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.04.2010, 19:39
Ответы с готовыми решениями:

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

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

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

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

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

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

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

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

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

Добавлено через 13 часов 37 минут
Цитата Сообщение от Puporev Посмотреть сообщение
???? Откуда Вы это содрали и какое это имеет отношение к файлу вещественных чисел file of real?
Это просто другой вариант с другими критериями к заданию)
Не подскажите, как переделать в вещественные числа?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
04.04.2010, 11:27
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
 Аватар для GL_Loney
7 / 7 / 1
Регистрация: 09.07.2009
Сообщений: 148
04.04.2010, 13:26  [ТС]
Цитата Сообщение от 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
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
04.04.2010, 13:42
Цитата Сообщение от GL_Loney Посмотреть сообщение
он создается там, где находиться программа?
Именно так, можете указывать и полный путь, кроме расширения, без разницы.
А скопировать готовый код и ничего там не трогая своими кривыми ручонками, это конечно невозможно.
Если еще и моя программа не заработает, застрелитесь.
Вложения
Тип файла: rar 7.rar (704 байт, 5 просмотров)
1
 Аватар для GL_Loney
7 / 7 / 1
Регистрация: 09.07.2009
Сообщений: 148
04.04.2010, 14:15  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Именно так, можете указывать и полный путь, кроме расширения, без разницы.
А скопировать готовый код и ничего там не трогая своими кривыми ручонками, это конечно невозможно.
Если еще и моя программа не заработает, застрелитесь.
Неа, я не скопировал, в ручную переписывал чтобы машинно запомнить функции и прочее)))
Работает, урааа) Спасибо, что выдержали мой алегофренизм в программирование) Искренне признателен (:
0
04.04.2010, 14:19

Не по теме:

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.04.2010, 14:19
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru