Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 20.06.2015, 10:11   #1 (permalink)
wac
Новичок
 
Регистрация: 20.06.2015
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите написать программу, Паскаль

program prim;
uses crt;
type student=record
fam:string[50];
godr:integer;
godp:integer;
os:integer;
pr:integer;
matem:integer;
angl:integer;
end;
var
arr:array [1..100] of student;

i,j:integer;
k:integer;
B:boolean;
n:integer;

m:integer;

begin
for i:=1 to n do
begin
Writeln('Введите фамилию');
readln(stud[i].fam);
Writeln('Введите дату рождение');
Readln(stud[i].godr);
Writeln('Введите год поступления в техникум');
Readln(stud[i].godp);
Writeln('Введите оценку по os');
readln(stud[i].os);
Writeln('Введите оценку по прогромированию');
Readln(stud[i].pr);
Writeln('Введите оценку по Высшей математике');
Readln(stud[i].matem);
Writeln('Введите оценку по Английскому');
readln(stud[i].angl);
end;
Writeln('Ввод закончен');

begin
for i:=1 to n do
begin
B:=true;
for j:=1 to m do
if (stud[i].os[j]<>2) or (stud[i].pr[j]<>2) or (stud[i].matem[j]<>2) or (stud[i].angl[j]<>2) then b:=false;


if b then writeln(stud[i].fam,stud[i].godr,stud[i].godp);
end;
end;
end.
задание
Составить программу для вывода записи по N студентам: фамилия, год рождения, год поступления в техникум и оценки по 4 предметам (ОС, Языки программирования, Высшая математика, Английский язык) последней аттестации. Распечатать список студентов, которые не имеют ни одной оценки-2
wac вне форума   Ответить с цитированием

Старый 20.06.2015, 10:11
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Аналогичные проблемы уже обсуждались ранее

Помогите, пожалуйста, написать программу на языке Паскаль
Помогите, пожалуйста, написать программу на языке Паскаль
Помогите, нужно написать программу в Паскаль, а я ни бум-бум
Помогите написать программу на С++
Помогите написать программу

Старый 20.06.2015, 20:00   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

А самому отладить - слабО?
Подсказываю.
1. Поскольку ни одной команды модуля CRT в программе не используется, так и незачем ставить "uses CRT;". Убрать.
2. Поля записи оценок по разным дисциплинам у Вас заданы, как обычные скаляры, а не массивы. Поэтому величину m и связанный с ней цикл по j в операции отбора - убрать. Ну или задайте массив оценок как поле записи. Что-нибудь одно выберете.
3. В начале программы необходимо по запросу ввести n - число студентов.
4. С учетом п.2, а также логики, вместо
for j:=1 to m do
if (stud[i].os[j]<>2) or (stud[i].pr[j]<>2) or (stud[i].matem[j]<>2) or (stud[i].angl[j]<>2) then b:=false;
следует написать
if (stud[i].os=2) or (stud[i].pr=2) or (stud[i].matem=2) or (stud[i].angl=2) then b:=false;
5. В строке вывода следует разделить информацию пробелами, а то всё слипнется и будет нечитабельно, т.е. вместо
writeln(stud[i].fam,stud[i].godr,stud[i].godp);
следует написать
writeln(stud[i].fam,' ',stud[i].godr,' ',stud[i].godp);

Дерзайте!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


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

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




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

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.