Помогите, пожалуйста решить 2 задачки:
1) Создать массив вещественных чисел. Заменить все отрицательные значения равными по модулю положительными и вывести результат работы на экран.
2) Создать массив целых чисел. Найти сумму и количество тех элементов массива, которые меньше заданного числа N. Вывести результат работы на экран.
var arr : array [ 1..100] of real;
n:integer;
i:integer;
begin
for i:= 1 to n do
if arr[i]<0 then arr[i]:=-2*(arr[i]);
for i:= 1 to n do
writeln(arr[i]);
end.
ЯЯЯ, в задаче №1 проще всего пробежаться по всему массиву, заменяя
a[i] := Abs(a[i]);при этом неотрицательные числа останутся прежними, а отрицательные сменят знак... И никаких условий не нужно - без них будет даже быстрее...
var arr : array [ 1..100 ] of integer;
n:integer;
c:integer;
i,count:integer;
begin
count:=0;
for i:= 1 to c do
if arr[i]<n then count:=count+arr[i];
for i:= 1 to c do
write(arr[i],' ');
end.
Reflex, а если подумать?
if arr[i]<0 then arr[i]:=-2*(arr[i]);При arr[i] = -20 что будет?
М | P.S. Ну, и зачем ПОЛНЫЕ решения??? Что, человек научится чему-нибудь? А вот неприятный осадок точно останется. Решения вроде полные, а нерабочие... Будет так продолжаться - получишь наказание. Правила еще никто не отменял: Цитата(Правила Раздела) 7. Проверяйте программы перед тем, как разместить их на форуме!!! |
Volvo - опечатка
if arr[i]<0 then arr[i]:=-(arr[i]);
ОФФ:
из паскаля тоже можно копировать просто открывай pas файл блокнотом.
а разбираться никто не будет пойдут сдавать готовое, не глядя. ни на один вопрос препода не смогут ответить и тебя же обвинят во всех смертных грехах.
Задачи не работают! Помогите исправить!
выложи код, который править. А те задачи которые выложила я достаточно правильные почитай эту тему и пойми что делать ;)
Program Sm;
var arr : array [ 1..100 ] of integer;
n:integer;
c:integer;
i,count:integer;
begin
count:=0;
for i:= 1 to c do
if arr[i]<0 then arr[i]:=-(arr[i]);
for i:= 1 to c do
write(arr[i],' ');
end.
! | ТЕГИ ! |
Program Sm;
uses crt;
var a : array [ 1..100 ] of integer;
n:integer;
i:integer;
begin
clrscr;
randomize; {делает так чтоб числа каждый раз выпадали разные}
writeln('Введите количесто символов в массиве?');
read(n); {читаем скоко символов хотите чтоб было }
for i:= 1 to n do
begin
a[i]:=random(20)-10; {заполняем массив чилами случайным образом}
write(a[i],' ');{показывает ети числа которые задались рандомом}
if a[i]< 0 then a[i]:=abs(a[i]);{если число < 0 то тогда записуем ето число в масcив по модулю}
end;
writeln;
for i:= 1 to n do
write(a[i],' '); {выдает результат}
repeat until keypressed; {выходит при нажатий на любую клавишу }
end.
! | Используем теги ! |
TimeStopper, если в IDE установлен режим RangeCheck (что, кстати, вполне логично делать, особенно для начинающего), то твой код вылетит при генерации первого же числа, которое ты думаешь, что будет отрицательным... Я бы делала так:
a[i]:=Integer(random(20))-10;, тогда ошибки не будет...
А что насчёт первой задачи?
Program n1;
uses crt;
var a : array [ 1..100 ] of integer;
n,m:integer;
i:integer;
s:integer;
k:integer;
begin
clrscr;
randomize;
writeln('Введите количесто символов в массиве?');
read(m);
writeln('Введите N');
read(n);
for i:= 1 to m do
begin
a[i]:=random(20);
write(a[i],' ');
if a[i]<n then
s:=s+a[i];
inc(k);
end;
writeln;
writeln('Количество символов которые меньше N = ',k);
writeln('Сума таких чисел = ',s);
repeat until keypressed; {выходит при нажатий на любую клавишу }
end.
! | Еще раз запостишь код без тегов, получишь предупреждение |
Видел, но я просто быстро писал и хотел помочь, и если сделал какуето ошибку, то чтоб не ругали сильно. Но больше так небуду.
Поспешишь - людей насмешишь. Твоя программа выдает бредовый результат.
В смысле результат, который выдает твоя программа порой является чушью не совместимой с истиной, так понятнее ?
Эскизы прикрепленных изображений
if a[i]<n then
BEGIN
s:=s+a[i];
inc(k);
END;
end;
А что такое
inc(k)