1)дан массив из n элементов (n-четное ).В ней элементы с четными и нечетными номерами поменять местами a[1] с a[2] .a[3] c a[n]и т.д
2)дан массив из VxV элементов (А-четное). Распечатать его в следующем порядке: a[1],a[n]....a[n]/2,a[n]/2-1 //эту задачу я нефига не понял !
3)дан массив из NxN элементов (N-четное).В ней элементы с четными и нечетными номерами поменять местами a[1] с a[2] .a[3] c a[n]и т.д
4)даны два массива из N- элементов. Составить трети массив в который поочеродно входят элементы из 1-го и из 2-го массивов и вывести его на печать
Freedom
8.06.2010 14:56
Цитата(bloodpirates @ 8.06.2010 10:43)
1)дан массив из n элементов (n-четное ).В ней элементы с четными и нечетными номерами поменять местами a[1] с a[2] .a[3] c a[n]и т.д 2)дан массив из VxV элементов (А-четное). Распечатать его в следующем порядке: a[1],a[n]....a[n]/2,a[n]/2-1 //эту задачу я нефига не понял ! 3)дан массив из NxN элементов (N-четное).В ней элементы с четными и нечетными номерами поменять местами a[1] с a[2] .a[3] c a[n]и т.д
4)даны два массива из N- элементов. Составить трети массив в который поочеродно входят элементы из 1-го и из 2-го массивов и вывести его на печать
Вот первое, 3 аналогично сами переделаете
var a:array [1..100] of integer;
i,k,n:integer;
begin
writeln('VVedite n');
readln(n);
writeln('VVedite elementi massiva');
For i:=1to n do readln(a[i]);
for i:=1to n doIf odd(i)=true thenbegin
k:=a[i];
a[i]:=a[i+1];
a[i+1]:=k;
end;
For i:=1to n do write (a[i],' ');
readln;
end.
4ое. Насчёт печати незнаю, остально так
var a,b,c:array [1..1000] of integer;
i,k,l,n:integer;
begin
l:=0;
k:=0;
writeln('Vvedite razmer massivov');
readln(n);
writeln('1 massiv');
For i:=1to n do readln(a[i]);
writeln('2 massiv');
For i:=1to n do readln(b[i]);
For i:=1to n*2dobeginIf odd(i)=True thenbegin
inc(k);
c[i]:=a[k];
endelsebegin
inc(l);
c[i]:=b[k];
end; end;
For i:=1to n*2do write (c[i],' ');
readln;
end.
bloodpirates
8.06.2010 15:52
СПс
Ozzя
8.06.2010 21:42
var a:array [1..100] of integer;
i,k,n:integer;
begin
writeln('VVedite n');
readln(n); // при n=100 будет rte
writeln('VVedite elementi massiva');
For i:=1to n do readln(a[i]);
for i:=1to n doIf odd(i)=true thenbegin// лишнее сравнение, достаточно просто odd()
k:=a[i];
a[i]:=a[i+1]; // ... тут
a[i+1]:=k;
end;
For i:=1to n do write (a[i],' ');
readln;
end.
Добавлено через 1 мин.
var a,b,c:array [1..1000] of integer;
i,k,l,n:integer;
begin
l:=0;
k:=0;
writeln('Vvedite razmer massivov');
readln(n);
writeln('1 massiv');
For i:=1to n do readln(a[i]);
writeln('2 massiv');
For i:=1to n do readln(b[i]);
For i:=1to n*2dobegin// А что будет при n =1000?
If odd(i)=True thenbegin
inc(k);
c[i]:=a[k];
endelsebegin
inc(l);
c[i]:=b[k];
end; end;
For i:=1to n*2do write (c[i],' ');
readln;
end.
Добавлено через 1 мин.
Цитата
Насчёт печати незнаю
Uses Printer;
...
writeLn(Lst,...);
volvo
8.06.2010 22:11
Цитата
// при n=100 будет rte
Оззя, совсем не обязательно Я бы сказал так: при n = 100 программа перестанет работать правильно. Может и не вылететь (при отключенном контроле границ), но это мало что меняет.
Цитата
// А что будет при n =1000?
Это вообще не нужно делать... Зачем идти по НОВОМУ массиву, и проверять, какой индекс сейчас обрабатывается? Не проще:
k := 1;
for i := 1to n dobegin
c[k] := a[ i ]; c[k + 1] := b[ i ];
inc(k, 2);
end;
?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.