Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Паскаль. Записи (http://www.tehnari.ru/f41/t59446/)

Max 20 06.11.2011 19:28

Паскаль. Записи
 
Вложений: 1
Постановка задачи (В Паскале ):
Для студентов некоторой группы задана следующая информация: порядковый номер, ФИО, дата рождения, курс, год поступления, и оценки на последней сессии. Составить программу, которая обеспечивает вывод полученной информации, распечатку ее в виде таблицы, а также распечатку ее согласно варианту.
Вариант 7. : Которые получают стипендию.

Vladimir_S 06.11.2011 21:03

Ладно, "помогаю":

Код:

uses crt;
type
 studlib = record
  FIO:string;
  Birth_Date:string;
  Course:Byte;
  Year:word;
  Marks:Array[1..3] of Byte;
  Mmark:Real;
 end;


var
 stud:Array[1..100] of studlib;
 i,N:Byte;

Procedure Out_Date(std:Studlib);
var j:byte;
begin
 with std do
  begin
  write(FIO);
  for j:=Length(FIO)+1 to 30 do write(' ');
  write(Birth_Date);
  write(Course:3);
  write(Year:5);
  for j:=1 to 3 do
    write(Marks[j]:4);
  writeln(Mmark:7:2);
  end;
end;

BEGIN
 clrscr;
 N:=0;
 writeln('Vvodite dannie o studentax');
 repeat
  Inc(N);
  with stud[N] do
  begin
    write('FIO: ');
    readln(FIO);
    write('Birth Date (dd.mm.yyyy): ');
    readln(Birth_Date);
    write('Course: ');
    readln(Course);
    write('Year of entry: ');
    readln(Year);
    Mmark:=0;
    for i:=1 to 3 do
    begin
      write('Mark ',i,' = ');
      readln(Marks[i]);
      Mmark:=Mmark+Marks[i]/3;
    end;
  end;
  clrscr;
  writeln ('ENTER-continue, ESC-quit');
 until (readkey=#27) or (N=100);

 clrscr;

 writeln('Student list:');
 for i:=1 to N do
  Out_Date(stud[i]);
 writeln;

 writeln('Press "Enter" to continue');
 readln;
 clrscr;

 writeln('Granted students:');
 for i:=1 to N do
  if stud[i].Mmark>=7.0 then
  Out_Date(stud[i]);

 readkey;
END.


Max 20 06.11.2011 21:42

почему-то пишет, ошибку:формат вывода:n не пременим к данным типа word

Vladimir_S 06.11.2011 22:16

Цитата:

Сообщение от Max 20 (Сообщение 613374)
почему-то пишет, ошибку:формат вывода:n не пременим к данным типа word

Ну это какие-то очередные задвиги версий. Совет: замените все форматы Word и Byte на Integer - скорее всего, проглотит.
P.S. Естественно, перед выкладыванием программа была оттестирована и у меня не выдала никаких ошибок.

Max 20 06.11.2011 22:39

не хочет! Версия программы: PASCAL ABC

Vladimir_S 07.11.2011 09:59

Цитата:

Сообщение от Max 20 (Сообщение 613416)
не хочет! Версия программы: PASCAL ABC

Тогда ничем помочь не могу. Разбираться с этим сборником глюков, именуемым АВС, нет ни малейшего желания.
Мною выложена абсолютно правильная программа, которая безупречно транслируется и выполняется в любом НОРМАЛЬНОМ Паскале.
Больше ничем помочь не могу.
Впрочем, если Вы предоставите ПОЛНУЮ информацию - где именно и на чем "спотыкается" Ваш АВС, куда при этом указывает маркер, какие сообщения возникают и т.п., то можно попробовать наладить и в этом... ну, в общем, в АВС.

Vladimir_S 07.11.2011 15:54

Всё-таки полез в это изделие №2 - Паскаль АВС - и не увидел никаких причин для возникновения ошибки. Что касается целых типов, так вся разница в том, что авторы этого дебильного пакета сделали Integer четырехбайтовым, то есть это тот же формат, что в обычном Паскале именуется LongInt. А word и byte - такие же. И форматы вывода целых чисел ничем не отличаются, что в Turbo, что в ABC. И с какого бы это перепугу "формат вывода :n не пременим к данным типа word", уж извините, но понять не могу. По-моему, очень даже применим. Склоняюсь к тому, что это глюки конкретной реализации АВС.


Часовой пояс GMT +4, время: 02:19.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.