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

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

shrek=) 24.09.2011 14:52

Паскаль, помощь в доработке программ
 
Определить, какой марки (makra) автомобилей больше всего.
Код:

type
date=record
num:string[20];
marka:string[20];
fam:string[20];
teh:byte;
end;
var
sved:array[1..100] of date;
k,n,i:integer;
f:text;
begin
assign (f,'C:/3.txt');
rewrite(f);
write ('Enter n=');
readln(n);
for i:=1 to n do begin
write ('nomer=');
readln (sved[i].num);
write ('marka=');
readln(sved[i].marka);
write ('fam=');
readln(sved[i].fam);
write ('(0,1)teh=');
readln (sved[i].teh);
if sved[i].teh=0 then writeln (f,sved[i].num,'    ',sved[i].fam);
end;
close(f);
end.


Vladimir_S 24.09.2011 18:32

Цитата:

Сообщение от shrek=) (Сообщение 590908)
Определить, какой марки (makra) автомобилей больше всего.

Да, Миша - очень Вы меня огорчили. Да что с Вами? Вы же нормально раньше с подобными пустяками справлялись!
Ну ладно.
Прежде всего - я напрочь не понял, что такое teh и зачем там файл, а потому это отключил, чтобы не мешало. А один из возможных вариантов решения задачки таков:

Код:

type
 date=record
  num:string[20];
  marka:string[20];
  fam:string[20];
  {teh:byte; }
 end;
var
 sved:array[1..100] of date;
 k,n,i:integer;
 {f:text;}

 j,Jfix,Nm:Integer;
 Marks:Array[1..100] of string[20];
 N_marks:Array[1..100] of Byte;
 Max_marks:Byte;
 b:boolean;
begin
 {assign (f,'C:/3.txt');
 rewrite(f);  }
 write ('Enter n= ');
 readln(n);
 Nm:=0;
 for i:=1 to n do N_marks[i]:=1;
 for i:=1 to n do
  begin
  b:=true;
  write ('nomer= ');
  readln (sved[i].num);
  write ('marka= ');
  readln(sved[i].marka);
  For j:=1 to Nm do
    if Marks[j]=sved[i].marka then
    begin
      b:=false;
      Jfix:=j;
    end;
  If b then
    begin
    Inc(Nm);
    Marks[Nm]:=sved[i].marka;
    end
  else Inc(N_marks[Jfix]);
  write ('fam= ');
  readln(sved[i].fam);
  { write ('(0,1)teh=');
  readln (sved[i].teh);
  if sved[i].teh=0 then writeln (f,sved[i].num,'    ',sved[i].fam); }
  writeln;
  end;
 {close(f);  }
 Max_marks:=0;
 for j:=1 to Nm do
  begin
  Writeln(Marks[j],' ',N_marks[j]);
  if N_marks[j]>Max_marks then
    begin
    Max_marks:=N_marks[j];
    Jfix:=j;
    end;
  end;
 writeln;
 writeln('Maximum:');
 writeln(Marks[Jfix],' ',N_marks[Jfix]);
 readln;
end.


shrek=) 24.09.2011 18:38

Файл нужен был потому, что задание выглядит так:
Сведения об автомобиле состоят из номера, марки, фамилии, признака прохождения техосмотра. Написать программу для занесения в массив информации о n автомобилях. Найти номера и владельцев, не прошедших техосмотр. (ЭТО Я СДЕЛАЛ). Определить, какой марки автомобилей больше всего. Занести информацию в файл.

shrek=) 24.09.2011 18:52

Совместив оба кода все таки довел программу до логического завершения.

P.S. Эта одна из программ расчетной работы 4 курса педагогического университета по специальности физика-информатика, которые студенты этой специальности не решают.

AlexZir 26.09.2011 12:26

Хех, что, студенческая жизнь заставила за ум взяться? :)) Говорили же вам в свое время, учите ЯП, пригодится, так нет, хихикали над нравоучениями :))

Миша, полностью код выложите, свое вы уже заработали :))

З.Ы. Первый курс делает РГР для четвертого, это неплохо, конечно, но нафига такие спецы (выпускники 4 курса) нужны будут? Эникейщиков и так хватает.


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

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