Автор | [трабл] задачка по информатике-2 |
никак не могу решить:
1.вывести на печать номера тех элементов массива, для которых выполняется условие ai(здесь i пишется чуть ниже а)>i.
2.найти количество положительных элементов массива.
3.вывести на печать элементы массива, оканчивающиеся на 2.
4.заменить отрицательные элементы массива нулями. |
Excel? |
На сколько я понимаю, Pascal...первый курс... |
Скорей даже Pascal 6 класса.
Я Бейсик изучал в паскале граматику плохо знаю, но в задачах не вижу ничего сложного. |
замутя хз как такое делать |
program p1;
const n=10
var a:array[1..n] of integer;
i:byte;
k:byte;
Begin
writeln('Введите элементы массива');
for i:=1 to n do
readln(a[i]);
writeln('Элементы массива, для которых выполняется a[i]>i');
for i:=1 to n do
if a[i]>i then write(a[i],' ');
writeln;
k:=0;
for i:=1 to n do
if a[i]>0 then inc(k);
writeln('Число положительных элементов массива=',k);
writeln('Элементы массива, оканчивающиеся на 2:');
for i:=1 to n do
if (a[i] mod 10)=2 then write(a[i],' ');
writeln;
for i:=1 to n do
if a[i]<0 then a[i]:=0;
writeln('Массив после замены:');
for i:=1 to n do
write(a[i],' ')
End; |
В конце точка, а не точка с запятой. В операторах Write в пустых кавычках - пробелы, почему-то не напечатались здесь. |
подготовительная билеберда (описание переменных, массивов)
for p:=0 do i
begin
if a[p]>p then write a[p];
end.
for p:=0 do i
begin
if a[p]>0 then write a[p];
end.
for p:=0 do i
begin
if ABS(a[p]-10*trunc(a[p]\10))=2 о then write a[p];
end.
for p:=0 do i
begin
if a[p]>0 then write a[p] else write 0;
end.
граматикой сам займись.
ABS - модуль числа (всегда положительное) как в паскале пишется я незнаю. |
8
Поправлю:
for p:=0 do i
begin
if a[p]>p then write(a[p]);
end;
s:=0;
for p:=0 do i
begin
if a[p]>0 then s:=s+1;
end;
write(s);
for p:=0 do i
begin
if (a[p]mod 10)=2 о then write(a[p]);
end;
for p:=0 do i
begin
if a[p]<0 then a[p]:=0;
end; |
для Edhardt:
За mod знал.Но не знаю тонкости.
Ecли а[p] отрицательно то результат все равно положительный? |
10
Хммм... наверно для отрицательных не так, ты прав
нужно переправить, например так:
for p:=0 do i
begin
if (a[p]>0) and (a[p]mod 10)=2 then write(a[p]);
if (a[p]<0) and (a[p]mod 10)=8 then write(a[p]);
end; |
для DEYDERIK:
Ты совершенно прав. Я перепроверил. Вот так нужно
for p:=0 do i
begin
if (a[p]mod 10)=2 or (a[p]mod 10)=-2 then write(a[p]);
end; |
тогда уж проще
if ((abs(a[p])) mod 10)=2)...
Но вот зачем вы употребляете begin..end при единственном операторе в циклах - это для меня загадка) |
13
Мы не употребляем. Это случайность, лень переправлять было. |
энто дэлфи, 10 класс. у нас в 8 и 9 информатики не было вот и паримся) |
ап |
для Aili:
говорю ж бейсик учил.тогда паскаль у нас не преподавали.
для Апгрейт:
У дэлфи основа паскаль наскока я знаю.так что 6 топик бери за основу. |
единственно строчку с mod поменяй как в 13. |
program p1;
const n=10
var a:array[1..n] of integer;
i:byte;
k:byte;
Begin
writeln('Введите элементы массива');
for i:=1 to n do
readln(a[i]);
writeln('Элементы массива, для которых выполняется a[i]>i');
for i:=1 to n do
if a[i]>i then write(a[i],' ');
writeln;
k:=0;
for i:=1 to n do
if a[i]>0 then inc(k);
writeln('Число положительных элементов массива=',k);
writeln('Элементы массива, оканчивающиеся на 2:');
for i:=1 to n do
if (a[i] mod 10)=2 then write(a[i],' ');
writeln;
for i:=1 to n do
if a[i]<0 then a[i]:=0;
writeln('Массив после замены:');
for i:=1 to n do
write(a[i],' ')
End
Pascal 6 класса
угу, а че не 3 класса? |