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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2012, 10:37   #1
noone
Пользователь
 
Регистрация: 16.12.2011
Сообщений: 10
Восклицание Паскаль!!!

1. В массиве хранится информация о количестве осадков, выпавших за каждый день января. Выведите на экран числа месяца, в которые осадков не было (количество осадков равно нулю).
2. В одномерном массиве все элементы различные. Поменять местами минимальный и максимальный элементы


3. Ввести массив а [1], а [2],..., а [n] целого типа и заменить все его элементы, стоящие пос-ле минимального, нулями. Полученный массив вывести на экран.
4. В массиве записана информация о стоимости 20 видов товара. Определить, сколько видов товара имеют стоимость меньшую, чем средняя стоимость всех видов товара.

Последний раз редактировалось noone; 28.01.2012 в 11:27.
noone вне форума Ответить с цитированием
Старый 28.01.2012, 11:30   #2
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Держи вторую -
Код:
uses crt;
const
  n=10;
var
  Mas:array[1..n] of integer;
  t,i,min,mini,maxi,max:integer;
begin
  writeln('Input massive[',n,'] - ');
  for i := 1 to n do
  begin
    write('Mas[',i,'] = ');
    readln(Mas[i]);
  end;
  min:=Mas[1];
  Max:=mas[1];
  for i := 1 to n do
  begin
    if Mas[i]<min then
    begin
      min:=mas[i];
      mini:=i;
    end
    else
    if Mas[i]>max then
    begin
      max:=mas[i];
      maxi:=i;
    end;
  end;
  t:=Mas[maxi];
  Mas[maxi]:=Mas[mini];
  Mas[mini]:=t;
  writeln;
  for i := 1 to n do
    write(Mas[i],' ');
  readln;
end.
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 28.01.2012, 11:42   #3
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Сообщение от ByAlex Посмотреть сообщение
Держи вторую -
хм...
мб слегка покороче сделать?
Код:
max := 1;
min := 1;
for i := 1 to n do
begin
     Readln (mas[i]);
     if mas[i]  > mas[max] then max := i;
     if mas[i]  < mas[min] then min := i;
end;
if mas <> min then
begin
     mas[max] := mas[max] xor mas[min];
     mas[min] := mas[max] xor mas[min];
     mas[max] := mas[max] xor mas[min];
end;
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 28.01.2012, 12:30   #4
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

первая
Код:
var
   zn:array [1..31] of longint;
   i:longint;
begin
 writeln('Введите количество осадков, выпадавших каждый день.');
   for i:=1 to 31 do
      readln(zn[i]);
   for i:=1 to 31 do
   begin
      if(zn[i]=0) then
         writeln(i);
   end;
end.
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 28.01.2012, 12:33   #5
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
3. Ввести массив а [1], а [2],..., а [n] целого типа и заменить все его элементы, стоящие пос-ле минимального, нулями. Полученный массив вывести на экран.
Код:
min := 1;
for i := 1 to n do
begin
     Readln (mas[i]);
     if mas[i]  < mas[min] then min := i;
end;
for i := min+1 to n do
    mas[i] := 0;
Цитата:
4. В массиве записана информация о стоимости 20 видов товара. Определить, сколько видов товара имеют стоимость меньшую, чем средняя стоимость всех видов товара.
Код:
sum := 0.0;
for i := 1 to n do
begin
     Readln (mas[i]);
     sum := sum + mas[i];
end;
count := 0;
for i := 1 to n do
    if mas[i] < (sum/n) then
        Inc(count);
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303

Последний раз редактировалось Hacker19_90; 28.01.2012 в 12:37.
Hacker19_90 вне форума Ответить с цитированием
Старый 28.01.2012, 14:01   #6
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
хм...
мб слегка покороче сделать?
Код:
max := 1;
min := 1;
for i := 1 to n do
begin
     Readln (mas[i]);
     if mas[i]  > mas[max] then max := i;
     if mas[i]  < mas[min] then min := i;
end;
if mas <> min then
begin
     mas[max] := mas[max] xor mas[min];
     mas[min] := mas[max] xor mas[min];
     mas[max] := mas[max] xor mas[min];
end;
Что вы здесь имели ввиду?
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 28.01.2012, 14:08   #7
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Что вы здесь имели ввиду?
перестановка с помощью xor, имеет подводные камни!
Касаемо кода:
1) Если индекс минимального и максимального совпадут
(допустим это массив типа 5 5 5 5 5 !)
тогда min будет равен max = 1;
и xor просто обнулит первое значение.
2) Такое же обнуление может произойти если
mas[min] = mas[max]
Что конечно в данном случае исключается! Но всё же...
Также даст обнуление уже двух элементов!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 28.01.2012, 14:11   #8
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Я имел ввиду, что у вас там ошибка - if max<>min then
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 28.01.2012, 14:14   #9
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Я имел ввиду, что у вас там ошибка - if max<>min then
в чем у меня там ошибка?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 28.01.2012, 14:19   #10
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
в чем у меня там ошибка?
Вы сравниваете массив с минимальным элементом - if mas<>min then, а нужно if max<>min then.
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль, Борланд Паскаль-в чем разница??? Vremya-Dengy Паскаль, Turbo Pascal, PascalABC.NET 13 31.05.2011 18:23
паскаль и турбо паскаль Евгения Игоревна Помощь студентам 6 05.05.2011 14:31
Паскаль Анастасия18 Помощь студентам 1 21.02.2011 23:11
Паскаль Roll1n Помощь студентам 3 03.10.2009 23:16