Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Закрытая тема
 
Опции темы Опции просмотра
Старый 17.05.2011, 10:12   #1 (permalink)
Disel'
Новичок
 
Регистрация: 17.05.2011
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Помогите плиз решить задачу в паскале. И если можно в одной программе.




В одномерном массиве, состоящем из n вещественных элементов, вычислить:

1) номер максимального по модулю элемента массива;

2) сумму элементов массива, расположенных после первого положительного элемента.

3) преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале [a,b] а потом - все остальные.
Disel' вне форума  

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

Рекомендую потратить минутку на прочтение аналогичных топиков

Матрицы и массивы в паскале
Задача на массивы, Pascal. Помогите найти ошибку
Массивы на Паскале
Паскаль. Задача на массивы
Задача на Паскале
Задача на массивы в Паскале

Старый 17.05.2011, 11:39   #2 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

1)
Код:
const n=10;
var mas:array[1..n] of real;
max_el:real;
i:integer;
begin
for i:=1 to n do
readln(mas[i]);
max_el:=mas[1];
for i:=2 to n do
if abs(mas[i])>abs(max_el) then max_el:=mas[i];
writeln('Max element =', max_el);
readln
end.
2)
Код:
const n=10;
var mas:array[1..n] of real;
s:real;
b:boolean;
i:integer;
begin
for i:=1 to n do
readln(mas[i]);
max_el:=0;
b:=false;
for i:=1 to n do begin
if (mas[i])>0) and (not b) then b:=not b;
if b then s:=s+mas[i]; end;
writeln('Sum =', s);
readln
end.
Надоело писать
__________________
Убить всех человеков!
AlexZir вне форума  
Старый 17.05.2011, 21:46   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Ладно, вот Вам всё "в одном флаконе":
Код:
const
 n=10;
var
 mas,m1,m2:array[1..n] of real;
 max_el,s,a,b:real;
 i,j1,j2:integer;
 bu:boolean;

begin
 for i:=1 to n do
  begin
   write('mas[',i:2,']= ');
   readln(mas[i]);
  end;
 for i:=1 to n do
  write(mas[i]:8:2);
 writeln;
 max_el:=mas[1];
 for i:=2 to n do
  if abs(mas[i])>abs(max_el) then max_el:=mas[i];
 writeln('Max element =', max_el:8:2);

 s:=0;
 bu:=false;
 for i:=1 to n do
  begin
   if (mas[i]>0) and (not bu) then bu:=not bu;
   if bu then s:=s+mas[i];
  end;
 writeln('Sum = ', s:10:2);

 writeln('Borders (a<b):');
 write('a= ');
 readln(a);
 write('b= ');
 readln(b);
 j1:=0;
 j2:=0;
 for i:=1 to n do
  begin
   if (frac(mas[i])>=a) and (frac(mas[i])<=b) then
    begin
     j1:=j1+1;
     m1[j1]:=mas[i];
    end
   else
    begin
     j2:=j2+1;
     m2[j2]:=mas[i];
    end;
  end;
 for i:=1 to j1 do
  mas[i]:=m1[i];
 for i:=j1+1 to n do
  mas[i]:=m2[i-j1];
 for i:=1 to n do
  write(mas[i]:8:2);
 readln
end.
Vladimir_S вне форума  
Ads

Яндекс

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


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

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




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

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