IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Нахождение максимума, с использованием файлов и меню
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской

Репутация: -  0  +


Вот тут не получаеться кое что сделать.
Условие следующее:

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

И код.
:p1:
Код

Program Zadanie8;
uses crt;
type
  spis=record
     a : array [1..100] of integer;
     mas,max,i   : integer;
  end;
  ff = file of spis;
var
massiv : array [1..100] of integer;
  a         : array [1..100] of spis;
  f1        : ff;
  q         : char;
  n,i,max,k : integer;
  name_1    : string[10];
{********* Џp®жҐ¤гp  ўў®¤  ¤ ­­ле б Є« ўЁ вгpл Ё § ЇЁбЁ Ёе ў д ©« *********}
procedure NEW_FILE (var f:ff);
  begin
clrscr;
 rewrite(f);
     Write('‚ўҐ¤ЁвҐ а §¬ҐаҐ­­®бвм ¬ ббЁў :');
     readln(n);
     Writeln('‚ўҐ¤ЁвҐ н«Ґ¬­вл ¬ ббЁў ');
     for i := 1 to n do
     begin
     readln(a[i].mas);
        end;
  close(f)
  end;
{********        Џp®жҐ¤гp  ЇҐз вЁ ? б®авЁа®ўЄЁ         **********}
procedure PRNT (var f:ff);
  begin
 reset(f1);
 seek(f1,0);
 writeln;
  write('Massiv dannix  :');
  for i := 1 to n do
  begin
  write (a[i].mas:4);
end;
max:=(a[i].mas);
for i := 1 to n do
if (max<a[i].mas) then
begin
max:=(a[i].mas);
writeln;
writeln('Њ ЄбЁ¬ «м­л© н««Ґ¬Ґ­в ¬ ббЁў  a[i] : ');
write(max);
end;
close(f)
end;
{****************       Ћб­®ў­ п Їp®Јp ¬¬         ******************}
begin
  clrscr;
          write ('Vvedite name Faila v kotorie bydyt soxraneni dannie: ');
  readln (name_1);
  assign (f1,name_1);
     repeat
     writeln;
    writeln('‚ўҐ¤ЁвҐ 1 ¤«п ᮧ ¤ ­Ёп Ќ®ў®Ј® ” ©«  :');
   writeln('‚ўҐ¤ЁвҐ 2 ¤«п Џа®б¬®ва  г¦Ґ ᮧ¤ ­­®Ј® ” ©«  :');
  writeln('Vvedite 3 dla Vixoda :');
       Readln(q);
case q of
'1' :NEW_FILE(f1);
'2' :PRNT(f1);
'3' :
end
until false;
end.


:ypr:Что эта прога глючит.Я делал ее своими руками но я токо учюся и незнаю многово о файлах,процедурах и меню.
Исправте пожалуста чтобы можно было с помощбю меню:
1)Создавать файл.
2)Открывать уже созданный файл.
3)И выход из программы.(причем программа должна закончиться токо когда пользователь выберет эту опцию)
И посмотрите по заданию правильно она пахает или нет?
СПАСИБО ВСЕМ КТО СМОЖЕТ МНЕ ПОМОЧЬ.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Ну, чтобы из программы можно было выйти по нажатию '3', ей надо об этом сказать. Основной блок переделываем так (не забываем про новую переменную Stop):
Код
var stop: boolean; (*** !!! ***)
begin
 clrscr;
 write ('Vvedite name Faila v kotorie bydyt soxraneni dannie: ');
 readln (name_1);
 assign (f1,name_1);

 stop := false; (*** !!! ***)
 repeat
   writeln;
   writeln('‚ўҐ¤ЁвҐ 1 ¤«п ᮧ ¤ ­Ёп Ќ®ў®Ј® ” ©«  :');
   writeln('‚ўҐ¤ЁвҐ 2 ¤«п Џа®б¬®ва  г¦Ґ ᮧ¤ ­­®Ј® ” ©«  :');
   writeln('Vvedite 3 dla Vixoda :');
   Readln(q);
   case q of
     '1' :NEW_FILE(f1);
     '2' :PRNT(f1);
     '3' :stop := true; (*** !!! ***)
   end
 until stop; (*** !!! ***)
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской

Репутация: -  0  +


Так это я вставил.Пахает.
А вот у меня вначале так идет.Он вот спрашивает названия файла в который будет сохранена информация.Потом мы выбираем цифру 1, 2, 3.Но вот небольшая проблема.Хотелось бы чтобы тут когда он создает новый файл он сразу находил максимальный элемент,записывал это в файл, и показывал сразу.А потом появляеться опять меню с выбором.И при выборе цифры 2 он должен открыть файл с сохраненными данными.Но токо почему то тут он этого не делает.Можешь посомтреть что тут надо исправить. :o
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской

Репутация: -  0  +


Так как это сотворить?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Для начала разберись с типами...
Код
type
 spis=record
   a : array [1..100] of integer;
   mas, max, i: integer;
 end;
 ff = file of spis;
var
 massiv: array [1..100] of integer;
 a: array [1..100] of spis;
 f1: ff;

Что по-твоему должно храниться в _одной_ переменной a? 100 целых чисел и еще значения max и прочее? Тогда зачем ты объявил массив из 100 таких переменных?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской

Репутация: -  0  +


ну я с запасом писал вдруг пргодяться smile.gif
Ну ты сможешь исправить что там не так?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Santrex, ты имеешь в виду, что программа должна делать вот это?


Прикрепленные файлы
Прикрепленный файл  __STRX.PAS ( 1.36 килобайт ) Кол-во скачиваний: 276
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 10.05.2024 6:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name