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:=1 to n do readln(a[i]); for i:=1 to n do If odd(i)=true then begin k:=a[i]; a[i]:=a[i+1]; a[i+1]:=k; end; For i:=1 to 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:=1 to n do readln(a[i]); writeln('2 massiv'); For i:=1 to n do readln(b[i]); For i:=1 to n*2 do begin If odd(i)=True then begin inc(k); c[i]:=a[k]; end else begin inc(l); c[i]:=b[k]; end; end; For i:=1 to n*2 do 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:=1 to n do readln(a[i]); for i:=1 to n do If odd(i)=true then begin // лишнее сравнение, достаточно просто odd() k:=a[i]; a[i]:=a[i+1]; // ... тут a[i+1]:=k; end; For i:=1 to 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:=1 to n do readln(a[i]); writeln('2 massiv'); For i:=1 to n do readln(b[i]); For i:=1 to n*2 do begin // А что будет при n =1000? If odd(i)=True then begin inc(k); c[i]:=a[k]; end else begin inc(l); c[i]:=b[k]; end; end; For i:=1 to n*2 do 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 := 1 to n do begin c[k] := a[ i ]; c[k + 1] := b[ i ]; inc(k, 2); end;
?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.