Guest abx

Решение заданий C4. Pascal

Recommended Posts

Guest abx   
Guest abx

Пара решений C4 by abx (ник не настоящий конечно же)

Из Ушакова 2012,варианты 2 и 6.

Вариант 2

program C4;

const

NSch = 99;

type

school = record

Num: Char;

Ball: Integer;

PCount: Integer;

AvgBall: Integer;

end;

Vector = Array[1..NSch] of school;

var

sch: Vector;

N,i: Integer;

c: Char;

schNo: Integer;

PBall: Integer;

MaxBall,NMaxBall: Integer;

MaxBallIndex: Integer;

spaceCount: Integer;

begin

for i := 1 To NSch Do

begin

sch.Ball := 0; sch.PCount := 0; sch.AvgBall := 0;

end;

ReadLn(N);

for i := 1 To N Do

begin

spaceCount := 0;

while (spaceCount <> 2) Do

begin

Read©;

if (c = ' ') then spaceCount := spaceCount + 1;

end;

Read(schNo,PBall);

sch[schNo].Ball := sch[schNo].Ball + PBall;

sch[schNo].PCount := sch[schNo].PCount + 1;

ReadLn;

end;

MaxBall := -1; NMaxBall := 1;

for i := 1 To NSch Do

begin

if (sch.PCount >= 1) then

begin

sch.AvgBall := Trunc(sch.Ball/sch.PCount);

if (sch.AvgBall > MaxBall) then

begin

MaxBall := sch.AvgBall;

NMaxBall := 1;

MaxBallIndex := i;

end

else

begin

if (sch.AvgBall = MaxBall) then NMaxBall := NMaxBall + 1;

end;

end;

end;

if (NMaxBall = 1) then

WriteLn(MaxBallIndex,' ',sch[MaxBallIndex].AvgBall)

else

WriteLn(NMaxBall);

end.

Share this post


Link to post
Share on other sites
Guest abx   
Guest abx

Вариант 6

Function Crypt(src: String):String;

var

dst: String;

i: Integer;

SrcLen: Integer;

Int: Integer;

begin

dst := '';

SrcLen := Length(src);

for i := 1 To SrcLen Do

begin

case src of

'A'..'Z':

begin

Int := ((Integer(src) + (SrcLen mod 26)) - Integer('A')) mod 26 + Integer('A');

dst := dst + Char(Int);

end;

'a'..'z':

begin

Int := ((Integer(src) + (SrcLen mod 26)) - Integer('a')) mod 26 + Integer('a');

dst := dst + Char(Int);

end;

end;

end;

Crypt := dst;

end;

var

prtStr,tmpStr: String;

i: Integer;

c: Char;

begin

prtStr := '';

Read©;

while (c <> '#') Do

begin

tmpStr := '';

while ( (c in ['A'..'Z']) or (c in ['a'..'z']) ) Do

begin

tmpStr := tmpStr + c;

Read©;

end;

if (Length(tmpStr) <> 0) then

begin

tmpStr := Crypt(tmpStr);

prtStr := prtStr + tmpStr;

tmpStr := '';

end

else

begin

prtStr := prtStr + c;

Read©;

end;

end;

prtStr := prtStr + c;

WriteLn(prtStr);

ReadLn; ReadLn;

end.

Share this post


Link to post
Share on other sites
Guest abx   
Guest abx

Условие можно прочитать в книжке выложенной где-то тут на форуме...Кому интересно пусть посмотрит,я же не настаиваю.Лично не знаю даже решать его на экзамене или нет,на отладку крипта убил около 30 минут блин,а там бумага,ручка, и сиди,отлаживай :D

Share this post


Link to post
Share on other sites

Мне кажется тут уже нужно либо заучивать, либо шпоры... по другому никак если не понимаешь... Вот я например тяп ляп могу сварганить, если за компом... А им еще нужно эффективную программу написать. Т.е. стопицот массивов нельзя использовать и все в таком духе)

Share this post


Link to post
Share on other sites
Guest abx   
Guest abx

Если эффективно по памяти - пишем на си и new/realloc,по быстродействию - статика на паскаое

Share this post


Link to post
Share on other sites
Guest MeneKK   
Guest MeneKK

у меня такая же проблема(( боюсь, что если на экзамене даже начну решать С4, то сделаю все так, что не разберешь потом, и наделаю кучу синтаксических ошибок ))

Share this post


Link to post
Share on other sites

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу