Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


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

Помогите пожалуйста написать программу на языке Паскаль.
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
1. Количество элементов массива, равных нулю.
2. Сумму элементов массива, расположенных после минимального элемента. Упорядочить элементы массива по возрастанию модулей.
НастяКозлова вне форума   Ответить с цитированием

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

Пока в вашей теме нет ответов можете заняться прочтением схожих тем

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

Старый 05.04.2014, 18:43   #2 (permalink)
Раджаб bro
Member
 
Регистрация: 26.02.2014
Сообщений: 19
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Program A1;
const n=50;
Var
i,min,sum,nul:integer;
a:array[1..n] of integer;
Begin
randomize;
for i:=1 to n do begin
a[i]:=random(30)-10;
write(a[i]:4);
end;
nul:=0;
if a[i]<0 then nul:=nul+1;
Writeln('Koli4ectBo HyJlEi=',nul:2);
for i:=1 to n do begin
min:=-10;
end;
for i:=1 to n do begin
if a[i]<min then min:=a[i];
sum:=min+a[i+1];
end;
Writeln('CyMMa ElementoB /7OCJlE min=',sum:4);
end.


Как видишь чето у меня не получается,посмотрим что мастера скажут.
Раджаб bro вне форума   Ответить с цитированием
Старый 05.04.2014, 21:56   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Раджаб bro Посмотреть сообщение
Как видишь чето у меня не получается,посмотрим что мастера скажут.
А мастера настоятельно потребуют, чтобы впредь сырые неотлаженные программы в качестве "помощи" не выкладывались. Потому что мастерам далеко не безразлична репутация форума.
Раджаб bro, то, что Вы представили это, извините, полный ужас и какое-то хаотическое нагромождение ошибок и неряшливостей. Вместо количества нулевых считается количество отрицательных членов, цикл поиска минимума вообще отсутствует, зато зачем-то n раз осуществляется операция min:=-10;, попытка сосчитать сумму членов после минимального - вообще какой-то бред, упорядочение массива отсутствует, и т.д. и т.п.
Справедливости ради отмечу, что и в самом задании присутствует ляп, уж не знаю, по чьей вине. Дело в том, что если массив вещественный (real), то вероятность появления в нем строго нулевых членов настолько мала, что определять их количество абсолютно бессмысленное дело. Поэтому будем считать массив целочисленным (integer). С учетом этого:
Код:
const
 n=50;
Var
 i,j,min,sum,nul,Imin,D:integer;
 a:array[1..n] of integer;
Begin
 randomize;
 nul:=0;
 writeln('Initial array:');
 for i:=1 to n do
  begin
   a[i]:=random(30)-10;
   write(a[i]:4);
   if a[i]=0 then nul:=nul+1;
  end;
 writeln;
 writeln;
 Writeln('Number of zero elements is ',nul);
 writeln;
 min:=a[1];
 Imin:=1;
 for i:=2 to n do
  if a[i]<min then
   begin
    min:=a[i];
    Imin:=i;
   end;
 sum:=0;
 for i:=Imin+1 to n do
  sum:=sum+a[i];
 Writeln('Sum of elements after minimal is ',sum);
 writeln;
 Writeln ('Ordered array:');
 for i:=1 to n-1 do
  for j:=1 to n-i do
   if abs(a[j])>abs(a[j+1]) then
    begin
     D:=a[j];
     a[j]:=a[j+1];
     a[j+1]:=D;
    end;
 for i:=1 to n do write(a[i]:4);
 readln
end.
Vladimir_S вне форума   Ответить с цитированием
Старый 05.04.2014, 22:07   #4 (permalink)
Евгений
Member
 
Аватар для Евгений
 
Регистрация: 31.03.2010
Адрес: Тульская область
Сообщений: 1,309
Сказал(а) спасибо: 11
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 13090
По умолчанию

Не успел, но выкладываю.
Интерено мнение о качестве.

const n= 20;
var A: array[1..n] of Real;
i,null,e: byte;
t,min,sum: Real;
begin
Randomize;
for i:=1 to n do
A[i]:= Random(100)/10;
for i:=1 to n do
Write(A[i]:5:1);
Writeln;
min:= A[1]; null:=0; e:=0;
for i:=1 to n do begin
if A[i]=0 then Inc(null);
if A[i]< min then begin
min:= A[i]; e:=i;
end;
end;
Writeln('Null=',null);
sum:=0;
for i:= (e+1) to n do
sum:= sum+A[i];
Writeln('Summa=',sum:0:1);
for i:=1 to n-1 do
for e:=1 to n-i do
if A[e]>A[e+1] then begin
t:=A[e]; A[e]:=A[e+1]; A[e+1]:=t;
end;
for i:=1 to n do
Write(A[i]:5:1);
Readln;
end.
Евгений вне форума   Ответить с цитированием
Старый 05.04.2014, 22:14   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Евгений Посмотреть сообщение
Интерено мнение о качестве.
Да всё правильно, и по сути Ваш и мой варианты идентичны (разве что Вы объединили циклы подсчета количества нулей и поиска минимума), вот только замечание о формате массива и наличии строго нулевых членов остается в силе.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 06.04.2014, 05:06   #6 (permalink)
НастяКозлова
Новичок
 
Регистрация: 05.04.2014
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
А мастера настоятельно потребуют, чтобы впредь сырые неотлаженные программы в качестве "помощи" не выкладывались. Потому что мастерам далеко не безразлична репутация форума.
Раджаб bro, то, что Вы представили это, извините, полный ужас и какое-то хаотическое нагромождение ошибок и неряшливостей. Вместо количества нулевых считается количество отрицательных членов, цикл поиска минимума вообще отсутствует, зато зачем-то n раз осуществляется операция min:=-10;, попытка сосчитать сумму членов после минимального - вообще какой-то бред, упорядочение массива отсутствует, и т.д. и т.п.
Справедливости ради отмечу, что и в самом задании присутствует ляп, уж не знаю, по чьей вине. Дело в том, что если массив вещественный (real), то вероятность появления в нем строго нулевых членов настолько мала, что определять их количество абсолютно бессмысленное дело. Поэтому будем считать массив целочисленным (integer). С учетом этого:
Код:
const
 n=50;
Var
 i,j,min,sum,nul,Imin,D:integer;
 a:array[1..n] of integer;
Begin
 randomize;
 nul:=0;
 writeln('Initial array:');
 for i:=1 to n do
  begin
   a[i]:=random(30)-10;
   write(a[i]:4);
   if a[i]=0 then nul:=nul+1;
  end;
 writeln;
 writeln;
 Writeln('Number of zero elements is ',nul);
 writeln;
 min:=a[1];
 Imin:=1;
 for i:=2 to n do
  if a[i]<min then
   begin
    min:=a[i];
    Imin:=i;
   end;
 sum:=0;
 for i:=Imin+1 to n do
  sum:=sum+a[i];
 Writeln('Sum of elements after minimal is ',sum);
 writeln;
 Writeln ('Ordered array:');
 for i:=1 to n-1 do
  for j:=1 to n-i do
   if abs(a[j])>abs(a[j+1]) then
    begin
     D:=a[j];
     a[j]:=a[j+1];
     a[j+1]:=D;
    end;
 for i:=1 to n do write(a[i]:4);
 readln
end.
Спасибо большое за помощь!
НастяКозлова вне форума   Ответить с цитированием
Старый 06.04.2014, 05:09   #7 (permalink)
НастяКозлова
Новичок
 
Регистрация: 05.04.2014
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Евгений Посмотреть сообщение
Не успел, но выкладываю.
Интерено мнение о качестве.

const n= 20;
var A: array[1..n] of Real;
i,null,e: byte;
t,min,sum: Real;
begin
Randomize;
for i:=1 to n do
A[i]:= Random(100)/10;
for i:=1 to n do
Write(A[i]:5:1);
Writeln;
min:= A[1]; null:=0; e:=0;
for i:=1 to n do begin
if A[i]=0 then Inc(null);
if A[i]< min then begin
min:= A[i]; e:=i;
end;
end;
Writeln('Null=',null);
sum:=0;
for i:= (e+1) to n do
sum:= sum+A[i];
Writeln('Summa=',sum:0:1);
for i:=1 to n-1 do
for e:=1 to n-i do
if A[e]>A[e+1] then begin
t:=A[e]; A[e]:=A[e+1]; A[e+1]:=t;
end;
for i:=1 to n do
Write(A[i]:5:1);
Readln;
end.
Спасибо за помощь!
НастяКозлова вне форума   Ответить с цитированием
Старый 06.04.2014, 05:10   #8 (permalink)
НастяКозлова
Новичок
 
Регистрация: 05.04.2014
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Раджаб bro Посмотреть сообщение
Program A1;
const n=50;
Var
i,min,sum,nul:integer;
a:array[1..n] of integer;
Begin
randomize;
for i:=1 to n do begin
a[i]:=random(30)-10;
write(a[i]:4);
end;
nul:=0;
if a[i]<0 then nul:=nul+1;
Writeln('Koli4ectBo HyJlEi=',nul:2);
for i:=1 to n do begin
min:=-10;
end;
for i:=1 to n do begin
if a[i]<min then min:=a[i];
sum:=min+a[i+1];
end;
Writeln('CyMMa ElementoB /7OCJlE min=',sum:4);
end.


Как видишь чето у меня не получается,посмотрим что мастера скажут.
Спасибо за ответ
НастяКозлова вне форума   Ответить с цитированием
Старый 06.04.2014, 11:52   #9 (permalink)
Раджаб bro
Member
 
Регистрация: 26.02.2014
Сообщений: 19
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
А мастера настоятельно потребуют, чтобы впредь сырые неотлаженные программы в качестве "помощи" не выкладывались. Потому что мастерам далеко не безразлична репутация форума.
Раджаб bro, то, что Вы представили это, извините, полный ужас и какое-то хаотическое нагромождение ошибок и неряшливостей. Вместо количества нулевых считается количество отрицательных членов, цикл поиска минимума вообще отсутствует, зато зачем-то n раз осуществляется операция min:=-10;, попытка сосчитать сумму членов после минимального - вообще какой-то бред, упорядочение массива отсутствует, и т.д. и т.п.
Справедливости ради отмечу, что и в самом задании присутствует ляп, уж не знаю, по чьей вине. Дело в том, что если массив вещественный (real), то вероятность появления в нем строго нулевых членов настолько мала, что определять их количество абсолютно бессмысленное дело. Поэтому будем считать массив целочисленным (integer). С учетом этого:

Что поделаешь надо учиться.Плохо прогу видать обдумал.
Раджаб bro вне форума   Ответить с цитированием
Старый 06.04.2014, 11:55   #10 (permalink)
Раджаб bro
Member
 
Регистрация: 26.02.2014
Сообщений: 19
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

if a[i]<0 then nul:=nul+1
нет ну это хоть как я допустил там же видно что если =0,а не меньше...ужас
Раджаб bro вне форума   Ответить с цитированием
Ads

Яндекс

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

Опции темы
Опции просмотра

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

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




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

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