• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Паскаль. Записи

  • Автор темы Автор темы Max 20
  • Дата начала Дата начала

Max 20

Ученик
Регистрация
6 Ноя 2011
Сообщения
8
Реакции
0
Баллы
0
Паскаль. Записи

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

Вложения

  • Безымянный.webp
    Безымянный.webp
    43.3 KB · Просмотры: 162
Ладно, "помогаю":

Код:
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.
 
почему-то пишет, ошибку:формат вывода:n не пременим к данным типа word
 
почему-то пишет, ошибку:формат вывода:n не пременим к данным типа word
Ну это какие-то очередные задвиги версий. Совет: замените все форматы Word и Byte на Integer - скорее всего, проглотит.
P.S. Естественно, перед выкладыванием программа была оттестирована и у меня не выдала никаких ошибок.
 
не хочет! Версия программы: PASCAL ABC
 
не хочет! Версия программы: PASCAL ABC
Тогда ничем помочь не могу. Разбираться с этим сборником глюков, именуемым АВС, нет ни малейшего желания.
Мною выложена абсолютно правильная программа, которая безупречно транслируется и выполняется в любом НОРМАЛЬНОМ Паскале.
Больше ничем помочь не могу.
Впрочем, если Вы предоставите ПОЛНУЮ информацию - где именно и на чем "спотыкается" Ваш АВС, куда при этом указывает маркер, какие сообщения возникают и т.п., то можно попробовать наладить и в этом... ну, в общем, в АВС.
 
Всё-таки полез в это изделие №2 - Паскаль АВС - и не увидел никаких причин для возникновения ошибки. Что касается целых типов, так вся разница в том, что авторы этого дебильного пакета сделали Integer четырехбайтовым, то есть это тот же формат, что в обычном Паскале именуется LongInt. А word и byte - такие же. И форматы вывода целых чисел ничем не отличаются, что в Turbo, что в ABC. И с какого бы это перепугу "формат вывода :n не пременим к данным типа word", уж извините, но понять не могу. По-моему, очень даже применим. Склоняюсь к тому, что это глюки конкретной реализации АВС.
 
Назад
Сверху