Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Паскаль
Регистрация

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

Ответ
 
Опции темы
Старый 25.12.2017, 18:26   #1
Arturak
Новичок
 
Регистрация: 25.12.2017
Сообщений: 4
Репутация: 10
По умолчанию Комбинированный тип данных

Описать тип данных "студент": фамилия ,имя ,оценки по 3 предметам ,курс. Сформировать массив студентов. Данные о студентах прочитать из текстового файла. Найти всех троичников и их количество. Заране спасибо.
Arturak вне форума   Ответить с цитированием
Старый 25.12.2017, 18:39   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,906
Репутация: 5228
По умолчанию

Цитата:
Сообщение от Arturak Посмотреть сообщение
Заране спасибо.
за что спасибо то?
Кто-то будет делать работу вместо Вас?
А Вы чем заниматься будете?

тут не автоматическая "решалка" задач.
или выкладывайте свои наработки и рассказывайте, что не получается
или идите за платной помощью в раздел Фриланс
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 25.12.2017, 18:55   #3
Arturak
Новичок
 
Регистрация: 25.12.2017
Сообщений: 4
Репутация: 10
По умолчанию

Код:

type
  stud=record
  name: string[20];
  godR: integer;
  mark: array[1..3] of byte;
end;

var
a: array[1..100] of stud;
n,i,j,k: integer;
tmp: stud;
f: boolean;

begin
write('Сколько студентов в группе? ');
readln(n);
k:=0;
writeln('Введите данные по студентам:');
for i:=1 to n do
begin
writeln(' ',i,'-й студент:');
with a[i] do
begin
write(' Фамилия: ');
readln(name);
write(' Год рождения: ');
readln(godR);
f:=false;
writeln(' Оценки по 3-м предметам (от 2 до 5 баллов)');
for j:=1 to 3 do
begin
repeat
write(' ',j,'-я оценка: ');
readln(mark[j]);
if mark[j]=2 then f:=true;
until mark[j] in [2..5];
end;
if f then inc(k);
end;
end;

for i:=2 to n do
for j:=n downto i do
if a[j-1].godR > a[j].godR then
begin
tmp:=a[j-1];
a[j-1]:=a[j];
a[j]:=tmp;
end;
writeln(' Таблица успеваемости');
writeln('-------------------------------------------');
writeln(' Фамилия Год рождения Оценки');
writeln('-------------------------------------------');
for i:=1 to n do
with a[i] do
begin
write(name,' ':20-length(name),godR,' ');
for j:=1 to 3 do write(mark[j]:3);
writeln;
end;
writeln('-------------------------------------------');
writeln('Из них двоечников = ',k);
readln;
end.

Нужно чтобы данные о студентах считывало из текстового файла



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 26.12.2017 в 01:08.
Arturak вне форума   Ответить с цитированием
Старый 25.12.2017, 20:29   #4
digitalis
Участник клуба
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Адрес: Минск
Сообщений: 872
Репутация: 346
По умолчанию

Хорошо скопипастил (содрал, чтобы понятнее). Теперь остались пустяки : отформатировать текст, прочитать пол-странички про текстовые файлы и добавить сюда.
digitalis вне форума   Ответить с цитированием
Старый 26.12.2017, 01:15   #5
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,906
Репутация: 5228
По умолчанию

Цитата:
Сообщение от Arturak Посмотреть сообщение
Описать тип данных "студент": фамилия ,имя ,оценки по 3 предметам ,курс.
не смущает?
Цитата:
Сообщение от Arturak Посмотреть сообщение
write(' Год рождения: ');

чтение из текстового файла ОПРЕДЕЛЁННОГО формата (какого именно, легко понять по коду:

Код:

var f : Text;

begin
  Assign(f, 'students.txt');
  Reset(f);
  readln(f, n); // Сколько студентов в группе?
  for i:=1 to n do begin
    // читаем данные i-го студента
    readln(a[i].f, name); // Фамилия:
    readln(a[i].godR); // Год рождения: 
    for j:=1 to 3 do  // Оценки по 3-м предметам (от 2 до 5 баллов)
      read(a[i].mark[j]);
    ReadLn(f)
  end;
  Close(f);

  ....


Последний раз редактировалось Serge_Bliznykov; 26.12.2017 в 01:20.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 26.12.2017, 11:23   #6
Arturak
Новичок
 
Регистрация: 25.12.2017
Сообщений: 4
Репутация: 10
По умолчанию

Не работает говорит неизвестное имя mark
Arturak вне форума   Ответить с цитированием
Старый 26.12.2017, 11:38   #7
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 17,683
Репутация: 6211
По умолчанию

Это же массив в твоей структуре. И куда она потерялась? ))
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 26.12.2017, 11:39   #8
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,906
Репутация: 5228
По умолчанию

Цитата:
Сообщение от Arturak Посмотреть сообщение
Не работает говорит неизвестное имя mark
уж боюсь спросить, а Вы не забыли про
Цитата:
Сообщение от Arturak Посмотреть сообщение
Код:

type
  stud=record
  name: string[20];
  godR: integer;
  mark: array[1..3] of byte;
end

;
и вообще - хотите помощи - выкладывайте код.
а то можно долго гадать, что Вы там исправили и что добавили.


p.s. а насчёт этого:
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
не смущает?
Цитата:
Сообщение от Arturak
write(' Год рождения: ');
Вы ничего сказать не хотите?
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 26.12.2017, 12:10   #9
Arturak
Новичок
 
Регистрация: 25.12.2017
Сообщений: 4
Репутация: 10
По умолчанию

Код:

type
  stud=record
  name: string[20];
  mark: array[1..3] of byte;
end;

var
a: array[1..100] of stud;
n,i,j,k: integer;
f: boolean;
f1:text;
begin

  Assign(f, 'students.txt');
  Reset(f);
  readln(f, n); // Сколько студентов в группе?
  for i:=1 to n do begin
    // читаем данные i-го студента
    readln(a[i].f, name); // Фамилия:
    for j:=1 to 3 do  // Оценки по 3-м предметам (от 2 до 5 баллов)
      read(a[i].mark[j]);
  end;
  Close(f);
repeat
write(' ',j,'-я оценка: ');
if mark[j]=2 then f:=true;
until mark[j] in [2..5];
end;
if f then inc(k);
for i:=2 to n do
for j:=n downto i do
end;
begin
for i:=1 to n do
with a[i] do
begin
write(name,' ':20-length(name),' ');
for j:=1 to 3 do write(mark[j]:3);
writeln;
end;
end;
writeln('Из них двоечников = ',k);
end.

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 26.12.2017 в 12:24.
Arturak вне форума   Ответить с цитированием
Старый 26.12.2017, 12:28   #10
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,906
Репутация: 5228
По умолчанию

Цитата:
Сообщение от Arturak Посмотреть сообщение
Код:

repeat
write(' ',j,'-я оценка: ');
if mark[j]=2 then f:=true;
until mark[j] in [2..5];
end;
if f then inc(k)

не удалили лишнее.
Код:

repeat
write(' ',j,'-я оценка: ');
if mark[j]=2 then f:=true;
until mark[j] in [2..5];
end;
if f then inc(k);

да, если честно, и всё остальное в вашем коде надо удалить и написать цикл поиска троечников заново.
тем более, что это не сложно!

2)
Цитата:
Описать тип данных "студент": фамилия ,имя ,оценки по 3 предметам ,курс.
у Вас в структуре name - это фамилия или имя?
и где курс, на котором учится студент?

3) зачем Вы ищете двоечников, когда Вам нужно найти троечников?
Serge_Bliznykov вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Комбинированный тип данных в Pascal Carefuly Помощь студентам 0 23.09.2013 14:47
Комбинированный тип данных. ProgrammiST-_- Паскаль 8 27.11.2011 08:10
Комбинированный тип данных Black_butterfly Помощь студентам 1 14.04.2011 11:29
Комбинированный тип данных ne4eHUce Помощь студентам 3 11.04.2011 01:36
Комбинированный тип данных Nightt Помощь студентам 0 19.06.2009 18:25


20:20.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru