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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2008, 05:49   #1
GorNikSar
Пользователь
 
Регистрация: 19.12.2008
Сообщений: 11
Восклицание Проблема с МАССИВАМИ! Help!

Зачёты на носу, а ещё есть нерешённое. Помогите решить!

1. Результаты соревнований по марафону представлены массивами фамилий и результатов. В марафоне участвует 40 человек. Массивы отсортированы в порядке занятых мест. Определить бинарным поиском фамилию спортсмена, показавшего результат 4 часа.

2. Рост учеников представлен в виде массива. Рост девочек кодируется знаком "плюс", рост мальчиков - знаком "минус". Определить средний рост мальчиков.

3. В массиве 20 элементов. Найти и напечатать: удалить из массива нулевые элементы.
GorNikSar вне форума Ответить с цитированием
Старый 19.12.2008, 13:22   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от GorNikSar Посмотреть сообщение
3. В массиве 20 элементов. Найти и напечатать: удалить из массива нулевые элементы.
Нулевые элементы заменяются на элементы с конца, а длина массива уменьшается на 1
Код:
uses crt;
const n=20;
var a:array[1..n] of integer;
    i,j,k:integer;

begin
clrscr;
randomize;
for i:=1 to n do
 begin
  a[i]:=random(10);
 write(a[i]:2);
 end;
k:=0;
for i:=1 to n do
 if a[i]=0 then begin
                a[i]:=a[n-k];
                inc(k);
                end;
writeln;
for i:=1 to n-k do
 write(a[i]:2);
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 19.12.2008, 13:26   #3
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от GorNikSar Посмотреть сообщение
2. Рост учеников представлен в виде массива. Рост девочек кодируется знаком "плюс", рост мальчиков - знаком "минус". Определить средний рост мальчиков.
Код:
uses crt;
const n=20;
var a:array[1..n] of integer;
    i,k:integer;
    j:real;

begin
clrscr;
randomize;
for i:=1 to n do
 begin
 a[i]:=160+random(40);
 k:=random(2);
 if k=0 then a[i]:=-a[i];
 write(a[i]:5);
 end;
k:=0;j:=0;
for i:=1 to n do
if a[i]<0 then begin
                j:=j+a[i];
                inc(k);
               end;  
writeln;
writeln(abs(j/k):4:1)
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 19.12.2008, 13:43   #4
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от GorNikSar Посмотреть сообщение
Зачёты на носу, а ещё есть нерешённое. Помогите решить!

1. Результаты соревнований по марафону представлены массивами фамилий и результатов. В марафоне участвует 40 человек. Массивы отсортированы в порядке занятых мест. Определить бинарным поиском фамилию спортсмена, показавшего результат 4 часа.
Код:
uses crt;
const n=100;
var a:array[1..n] of real;
    Surname:array[1..n] of string[20];
    i,j,x:integer;
    t:string;
    temp:real;

procedure Find;
var i,l,r:integer;
begin
l:=1;r:=x;
repeat
i:=(r-l) div 2 +l;
if a[i]<4 then l:=i;
if a[i]>4 then r:=i;
if a[i]=4 then writeln(Surname[i]);
until (l=r)or(a[i]=4);

end;

begin
x:=0;
repeat
inc(x);
clrscr;
writeln('Input surname');
readln(Surname[x]);
writeln('Input result');
readln(a[x]);
if x<>n then writeln('Continue(y/n)?')
until (readkey='n')or(x=n);
  for i:=2 to x do
    for j:=x downto i do
      if a[j-1]>a[j] then
        begin
          Temp:=a[j-1];
          t:=Surname[j-1];
          a[j-1]:=a[j];
          Surname[j-1]:=Surname[j];
          a[j]:=temp;
          Surname[j]:=t;
        end;
writeln('---------------');
Find;

end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с динамическими массивами Arassir Помощь студентам 2 11.11.2008 00:15
Работа с массивами rexec Microsoft Office Excel 12 21.04.2008 13:29
помогите с массивами Ibmsystem Помощь студентам 1 21.04.2008 08:10
Помогите с массивами Юль_кА Паскаль, Turbo Pascal, PascalABC.NET 2 10.04.2008 08:39