Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2010, 17:45   #1
4otenado
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 39
По умолчанию Pascal (тип record)

Помогите пож-та исправить.
Вот код программы:
program laba3;

uses
Crt;

const
MaxQuantity = 10;

type
Person = record
Surname, Name: String;
Date: Integer;
Mark: Array[1..3] of Byte;
ModeOfStudy: String;
end;
Students = Array[1..MaxQuantity] of Person;


procedure DataInput(var X: Students; var N: Integer);
var
S: String;
I, J: Integer;
begin
WriteLn('Vvedite kolichestvo studentov');
ReadLn(N);
WriteLn;
for I := 1 to N do
begin
WriteLn(I, '-j student');
WriteLn;
Write('Familija: ');
ReadLn(X[I].Surname);
Write('Imja: ');
ReadLn(X[I].Name);
Write('Data rozhdenija: ');
ReadLn(X[I].Date);
for J := 1 to 3 do
begin
Write(J, '-ja ocenka: ');
ReadLn(X[I].Mark[J]);
end;
Write('Forma obuchenija: ');
ReadLn(X[I].ModeOfStudy);
WriteLn;
end;
end;

procedure Sorting(var X: Students; const N: Integer);
var
I, J: Integer;
tmp: Person;
begin
for I := 1 to N - 1 do
for J := I + 1 to N do
if (X[I].Mark[1] + X[I].Mark[2] + X[I].Mark[3]) / 3 >
(X[J].Mark[1] + X[J].Mark[2] + X[J].Mark[3]) / 3 then
begin
tmp := X[I];
X[I] := X[J];
X[J] := tmp;
end;
end;

var
X: Students;
N, I, J: Integer;
M: Real;
begin
ClrScr;
DataInput(X, N);
Sorting(X, N);
WriteLn;
WriteLn;
M := 0;
for I := 1 to N do
for J := 1 to 3 do
M := M + X[I].Mark[J];
M := M / (N * 3);
WriteLn('Srednij ball = ', M:2:2);
WriteLn;
WriteLn('Spisok studentov: ');
for I := 1 to N do
WriteLn(X[I].Surname, ' ', X[I].Name, ';');
ReadKey;
end.
===============================
Write('Familija: ');
ReadLn(X[I].Surname);
Write('Imja: ');
ReadLn(X[I].Name);
Write('Data rozhdenija: ');
ReadLn(X[I].Date);
for J := 1 to 3 do
begin
Write(J, '-ja ocenka: ');
ReadLn(X[I].Mark[J]);
end;
Write('Forma obuchenija: ');
ReadLn(X[I].ModeOfStudy);
WriteLn;
end;
вот это нужно исправить так, чтобы это выводило в строку, а сейчас выводит в столбик.
заранее спасибо.
4otenado вне форума Ответить с цитированием
Старый 17.02.2010, 20:06   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

если ты это писал, то вопросов не должно возникнуть
и комменты не забываем не забываем
Кому охота разбираться в чужих ошибках, помогай нам тебе помочь помогай, описывай что делает программа, функция
глядишь и помощи будет больше да и качественней
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]

Последний раз редактировалось RUSt88; 17.02.2010 в 20:11.
RUSt88 вне форума Ответить с цитированием
Старый 17.02.2010, 20:07   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Меняйте
Код:
WriteLn(X[i].Surname, ' ', X[i].Name, ';');
На
Код:
Write(X[i].Surname, ' ', X[i].Name, ';',' ');
35 сообщений, а правила не удосужились прочитать?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 17.02.2010 в 20:10.
Alex Cones вне форума Ответить с цитированием
Старый 21.02.2010, 13:52   #4
4otenado
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 39
Сообщение

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Меняйте
Код:
WriteLn(X[i].Surname, ' ', X[i].Name, ';');
На
Код:
Write(X[i].Surname, ' ', X[i].Name, ';',' ');
35 сообщений, а правила не удосужились прочитать?
Дело не в этом, мне нужно вводить вот так:
фамилия имя год рождения оц.1 оц.2 оц.3 форма обучения
Иванов Петр 1990 4 4 3 б
Петров Иван 1989 3 5 3 д
и т.д.,
а сейчас это все вводится в столбик, т.е. вот так:
фамилия: Иванов
имя: Петр
год рождения: 1990
оц.1: 4
оц.2: 4
оц.3: 3
форма обучения: б
фамилия: Петров
имя: Иван
год рождения: 1989
оц.1: 3
оц.2: 5
оц.3: 3
форма обучения: д
и т.д.

Последний раз редактировалось 4otenado; 21.02.2010 в 13:55.
4otenado вне форума Ответить с цитированием
Старый 24.02.2010, 00:16   #5
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

да поможет тебе команда gotoXY (команда для позиционирования курсора в нужном месте)
так а в чем проблема так выводить?
сначала вводишь данные с клавиатуры, запоминаешь куда надо, очищаешь экран если нужно и выводишь первую строчку, вторую и тд
Writeln('фамилия имя год рождения оц.1 оц.2 оц.3 форма обучения');
writeln(X[i].Surname, ' ', X[i].Name, и т.д.)
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]

Последний раз редактировалось RUSt88; 24.02.2010 в 00:21.
RUSt88 вне форума Ответить с цитированием
Старый 25.02.2010, 21:31   #6
4otenado
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 39
По умолчанию

да, я так вводил:
Writeln('фамилия имя год рождения оц.1 оц.2 оц.3 форма обучения');
writeln(X[i].Surname, ' ', X[i].Name, и т.д.)
и что у меня получилось... ровным счетом ничего, т.к не выводило сам результат. Но я нашёл выход увидев пример с командой gotoXY, так и сделал.
4otenado вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal (тип String и массивы). 4otenado Помощь студентам 8 25.12.2009 18:11
Pascal (тип record, процедуры и функции) 4otenado Помощь студентам 3 23.12.2009 01:00
Pascal. Тип запись d_b Помощь студентам 9 02.03.2009 08:46
Внести в задачу пару условий,пожалуйста помогите(Pascal-record)тип записи... Andrux Помощь студентам 2 15.02.2009 17:51
Pascal. Тип record deu4er Помощь студентам 10 11.02.2009 04:19