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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2010, 00:43   #1
Vadim123456
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 37
Восклицание Однородные массивы.

В первых трёх программах я уверен, но всё-таки посмотрите пожалуйста, может кто-то из вас заметит ошибку и поможет. В четвёртой программе я сомневаюсь, а в пятой я вообще не знаю с чего начать. Заранее благодарен!

1. С помощью датчика случайнтых чисел на интервале (-50, 50) получить целочисленный массив, состоящий из 35 элементов.
Код:
Program gg;
Uses crt;
Var
a:array [-50..50] of integer;
i:integer;
Begin
Clrscr;
Randomize;
For i:=-50 to 50 do
A[i]:=Random(101)-50;
For i:=-50 to 50 do
Begin
Write('A[',i,']=',A[i]);
Write(' ');
End;
Readln;
End.
2. Заполнить числовой массив так, чтобы значения элементов совпали с их индексами.
Код:
Program gg2;
Uses crt;
Var
a:array [1..10] of integer;
i:integer;
Begin
Clrscr;
For i:=1 to 10 do
Begin
Write('A[',i,']=',i);
Write(' ');
End;
Readln;
End.
3. Дан массив целых чисел из 10 элементов. Ввод элементов организовать с клавиатуры. Вывести в строку массив, состоящий из нечётных элементов.
Код:
Program gg;
Uses crt;
Var
a:array [1..10] of integer;
i:integer;
Begin
Clrscr;
For i:=1 to 10 do
Begin
Write('A[',i,']=');
Readln(A[i]);
end;
Write('A[1]=',A[1]);
Write(' ');
Write('A[3]=',A[3]);
Write(' ');
Write('A[5]=',A[5]);
Write(' ');
Write('A[7]=',A[7]);
Write(' ');
Write('A[9]=',A[9]);
Readln;
End.
4. Заполнить одномерный массив из N элементов следующим образом:

1 Попытка
Код:
Program gg;
Uses crt;
Var
a:array[1..7] of integer;
i:integer;
Begin
For i:=1 to 7 do
Begin
Write('A[',i,']=');
Readln(A[i]);
End;
For i:=1 to 7 do
Writeln('A[',i,']=',A[i]);
Readln;
End.
2 Попытка
Код:
Program gg;
Uses crt;
Var
a:array[1..10] of integer;
i:integer;
Begin
Clrscr;
i:=1;
Write('A[',i,']=',0);
Write(' ');
i:=2;
Write('A[',i,']=',i);
Write(' ');
i:=3;
Write('A[',i,']=',0);
Write(' ');
i:=4;
Write('A[',i,']=',i);
Write(' ');
i:=5;
Write('A[',i,']=',0);
Write(' ');
i:=6;
Write('A[',i,']=',i);
Write(' ');
i:=7;
Write('A[',i,']=',0);
Write(' ');
i:=8;
Write('A[',i,']=',i);
Write(' ');
i:=9;
Write('A[',i,']=',0);
Write(' ');
i:=10;
Write('A[',i,']=',i);
Readln;
End.
5. Сформировать массив A(N) следующим образом: A(1)=-1, A(2)=1, A(3)=-3, A(4)=3, A(5)=-5, A(6)=5, A(7)=-7 и т.д.

Последний раз редактировалось Vadim123456; 10.01.2010 в 02:23.
Vadim123456 вне форума Ответить с цитированием
Старый 10.01.2010, 04:15   #2
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

в общем по поводу первой задачи вроде как все верно, только выводить он у тебя будет 100 элементов,а по условию нужно 35 по этому вывод изменить нужно от 1 до 35 в общем вот текст исправленный:
Код:
Program gg;
Var
a:array [-50..50] of integer;
i:integer;
Begin
Randomize;
For i:=-50 to 50 do
A[i]:=Random(101)-50;
For i:=1 to 35 do
Begin
Write('A[',i,']=',A[i]);
Write(' ');
End;
Readln;
End.
Цитата:
3. Дан массив целых чисел из 10 элементов. Ввод элементов организовать с клавиатуры. Вывести в строку массив, состоящий из нечётных элементов.
здесь у тебя вообще не правильный алгоритм, у тебя в любом случае будут выводиться элементы с нечетным индексом,а нужно выводить сами нечетные ЭЛЕМЕНТЫ, для этого нужна проверка при выводе, держи правильный текст этой задачи :
Код:
Program gg;
Uses crt;
Var
a:array [1..10] of integer;
i:integer;
Begin
Clrscr;
For i:=1 to 10 do
Begin
Write('A[',i,']=');
Readln(A[i]);
end;
for i:=1 to 10 do
if a[i] mod 2 <>0 then
write(a[i],'  ');
end.
Цитата:
4. Заполнить одномерный массив из N элементов следующим образом:
Во второй попытке с чего ты взял что элементов именно 10? По условию сказано что их кол-во N, следовательно сколько введешь в N, столько и должно эелементов вывести по условию твоей задачи.
И еще по поводу 2-ому способу, в принципе для 10 элементов правильно, но не рационально, вот представь то что нужно для 100 элементов, ты так и будешь
Код:
Write('A[',i,']=',0);
для 100 и писать?
В общем держи правильное решение этой задачи:
Код:
Program gg;
Var
a:array[1..100] of integer;
n,i:integer;
Begin
writeln('введите кол-во элементов');
readln(n);
for i:=1 to n do
a[i]:=i;
for i:=1 to n do
begin
if a[i] mod 2 = 0 then
a[i]:=i
else a[i]:=0
end;
for i:=1 to n do
write(a[i],'  ');
end.
Цитата:
5. Сформировать массив A(N) следующим образом: A(1)=-1, A(2)=1, A(3)=-3, A(4)=3, A(5)=-5, A(6)=5, A(7)=-7 и т.д.
Код:
Program gg;
Var
a:array[1..100] of integer;
j,n,i:integer;
Begin
writeln('введите кол-во элементов');
readln(n);
j:=1;
for i:=j to n-1 do
begin
a[j]:=-j;
a[j+1]:=j;
j:=j+2;
end;
for i:=1 to n do
write('a[',i,']=',a[i],'  ');
end.
Базиля вне форума Ответить с цитированием
Старый 10.01.2010, 04:21   #3
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Цитата:
2. Заполнить числовой массив так, чтобы значения элементов совпали с их индексами.
вроде как правильно. лучше сделать вот так, ибо по условию у тебя не сказано что элементов именно 10:
Код:
Program gg2;
Uses crt;
Var
a:array [1..100] of integer;
n,i:integer;
Begin
Clrscr;
writeln('введите кол-во элементов');
readln(n);
For i:=1 to n do
Begin
Write('A[',i,']=',i);
Write(' ');
End;
Readln;
End.
Надеюсь это тебе поможет
Базиля вне форума Ответить с цитированием
Старый 10.01.2010, 14:18   #4
Vadim123456
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 37
По умолчанию

1. Ошибку понял =)
2. Тоже всё понятно =)
3. Эта у меня не работает, так, как сделал ты. Я её поправил и вроде получилось =) Посмотри. Ты там в конце где
For i:=1 to 10 do
Begin
If a[i] mod <> 0 then
Write('A[',i,']=',a[i],' ');
End;
Readln;

End.
Код:
Program gg;
Uses crt;
Var
a:array [1..10] of integer;
i:integer;
Begin
Clrscr;
For i:=1 to 10 do
Begin
Write('A[',i,']=');
Readln(A[i]);
end;
For i:=1 to 10 do
Begin
If a[i] mod 2<>0 then
Write('A[',i,']=',a[i],' ');
End;
Readln;
End.
4. В четвёртой так же как и в третьей в конце надо добавить.
Код:
Program gg;
Uses crt;
Var
a:array[1..100] of integer;
n,i:integer;
Begin
Clrscr;
Write('Vvedite kol-vo elementov=');
Readln(n);
For i:=1 to n do
A[i]:=i;
For i:=1 to n do
Begin
If A[i] mod 2 = 0 then
A[i]:=i
Else A[i]:=0
End;
For i:=1 to n do
Write('A[',i,']=',a[i],'  ');
Readln;
End.
5. Во всём согласен, только опять Readln не написал =)

ОГРОМНОЕ СПАСИБО ТЕБЕ! ВЫРУЧИЛ ОЧЕНЬ! ТЕПЕРЬ Я РАЗОБРАЛСЯ ВО ВСЁМ!


Добавь меня в аську пожалуйста 449551262 или дай свою добавлю =)

Последний раз редактировалось Vadim123456; 10.01.2010 в 14:21.
Vadim123456 вне форума Ответить с цитированием
Старый 10.01.2010, 15:24   #5
Vadim123456
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 37
По умолчанию

А ещё у меня почти такая же задачка как и пятая =) Помогите мне, пожалуйста.

2. Создайте и распечатайте в столбик одномерный массив длиной N, следующим образом: А(1) = 4, А(2) = 6, А(3) = 8, А(4) = 10 . . .
Vadim123456 вне форума Ответить с цитированием
Старый 10.01.2010, 15:55   #6
Vadim123456
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 37
По умолчанию

Во решил =)
Код:
Program gg;
Uses crt;
Var
a:array[1..100] of integer;
i,k,N:integer;
Begin
Clrscr;
Write('Vvedite kol-vo elementov=');
Readln(N);
k:=4;
For i:=1 to N do
Begin
A[i]:=k;
k:=k+2;
End;
For i:=1 to N do
Writeln('A[',i,']=',a[i]);
Readln;
End.
Vadim123456 вне форума Ответить с цитированием
Старый 10.01.2010, 17:34   #7
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

по поводу begin и end; в 3-ей и 4-ой задаче, они там не обязательны т.к. в цикл входит только один условный оператор, операторные скобки в цикле следует ставить когда в него входит более одного оператора.
Например
Код:
for i:=1 to 10 do
begin
if a[i]=1 then p:=5;
if a[i]=13 the p:=16;
end;
видишь в этот входят два условных оператора, следовательно нужно поставить операторные скобки, без них у тебя по циклу проверялся бы только первый опертор, а последний проверялся бы по последнему значению параметра цикла т.е. 10.
в 4-ой задаче readln требуется ставить в некоторых версиях Pascal'я для вывода результата решения задачи на экран(Borland TP), у меня выводит спокойно и без этого оператора(Pascal ABC)
P.S. по поводу аськи см ЛС

Последний раз редактировалось Базиля; 10.01.2010 в 22:31.
Базиля вне форума Ответить с цитированием
Старый 13.02.2010, 21:10   #8
Жора Сухов
Новичок
Джуниор
 
Регистрация: 13.02.2010
Сообщений: 1
По умолчанию

Ребят, напишите мне пожалуйста 2 программки жесть надо!

1)Напишите программу формирования массива размером 5x5 с помощью датчика случайных чисел.Замените в нём все элементы, значения которых кратны трём, на соответствующие произведения их индексов. Выведите на экран исходный и изменённый массивы.

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

Заранее спасибо!
Жора Сухов вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массивы natasha971929 Общие вопросы C/C++ 9 14.02.2010 19:28
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
массивы. Засоня Помощь студентам 1 13.07.2009 22:17