![]() |
#1 (permalink) |
Новичок
Регистрация: 02.12.2012
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]() 1. В заданном одномерном массиве С выяснить, какое число встречается раньше - положительное или отрицательное и его индекс. 2. Составить программу, отыскивающую среди пар элементов (1 и 2, 3 и 4, 5 и 6, и т.д.) одномерного массива М те, разность между элементами которых есть величина, наибольшая для данного массива. 3. В одномерном массиве удалить те элементы, для которых a[i]>=i 4. Вставить элемент С перед всеми нечетными элементами, стоящими на четных местах. 5. Найти наименьший элемент матрицы. Записать нули в строку и столбец, в которых он находится. 6. Дана матрица целых чисел размером 4х5. Напечатайте индексы всех ее седловых точек. (Седловой точкой называется элемент, который является наименьшим в своей строке и наибольшим в своем столбце или наоборот). 7. Удалить все строки и столбцы, на пересечении которых стоят отрицательные элементы. |
![]() |
![]() |
![]() |
|
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Данные темы содержат похожую информацию Задача на Паскале Массивы Массивы в Си Помогите с задачей в паскале на одномерные массивы Матрицы и массивы в паскале Массивы |
![]() |
#2 (permalink) |
Member
Регистрация: 29.01.2013
Сообщений: 91
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 565
|
![]()
1) Задание
Код:
program Array1; var i:integer; // счетчик в цикле N:integer; // размер массива C: array [1..10] of integer; begin // ввод данных writeln('Введите N (N<=10)'); readln(N); writeln('Введите элементы массива'); for i:=1 to N do begin read(C[i]); end; // формирование массива for i:=1 to N do begin if C[i]>0 then begin writeln('положительное число встечается раньше индекс элемента = ',i); break; end; if C[i]<0 then begin writeln('отрицательное число встечается раньше индекс элемента = ',i); break; end; end; end. ---------------------------------------- Введите N (N<=10) 5 Введите элементы массива 0 0 0 0 -9 2 отрицательное число встечается раньше индекс элемента = 5 ---------------------------------------- |
![]() |
![]() |
![]() |
#3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]() Код:
Const Nmax=20; Var a,b:Array[1..Nmax] of Integer; N,M,i:Integer; Begin Write('Number of elements (<20) = '); Readln(N); M:=0; Randomize; Writeln('Old:'); For i:=1 to N do begin a[i]:=Random(N); write(a[i]:4); if a[i]<i then begin Inc(M); b[M]:=a[i]; end; end; Writeln; Writeln('New:'); For i:=1 to M do write(b[i]:4); Readln End. |
![]() |
![]() |
![]() |
#4 (permalink) |
Member
Регистрация: 29.01.2013
Сообщений: 91
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 565
|
![]()
2)
Код:
program Array1; var i:integer; // счетчик в цикле N:integer; // размер массива M: array [1..10] of integer; Max:integer; begin // ввод данных writeln('Введите N (N<=10)'); readln(N); writeln('Введите элементы массива'); for i:=1 to N do begin read(M[i]); end; // формирование массива Max:=1; for i:=1 to N div 2 do begin if abs(M[i*2]-M[i*2-1])>abs(M[Max*2]-M[Max*2-1]) then Max:=i; end; Writeln('Номера пары элементов между которыми разница наибольшая =',Max*2,' ',Max*2-1); end. __________________________________________________ _____ Введите N (N<=10) 8 Введите элементы массива 1 2 3 -9 4 6 0 5 Номера пары элементов между которыми разница наибольшая =4 3 __________________________________________________ _____ |
![]() |
![]() |
![]() |
#5 (permalink) |
Member
Регистрация: 29.01.2013
Сообщений: 91
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 565
|
![]()
4)
Код:
program Array1; var i,j:integer; // счетчик в цикле NewN,C,N:integer; // размер массива M: array [1..10] of integer; NewM: array [1..20] of integer; begin // ввод данных writeln('Введите C '); readln(C); writeln('Введите N (N<=10)'); readln(N); writeln('Введите элементы массива'); for i:=1 to N do begin read(M[i]); end; // формирование массива i:=1; j:=1; NewN:=N; for i:=1 to N do begin if (odd(M[i]))and(not odd(i)) then begin inc(NewN); // увеличиваем массив NewM[j]:=C; // вставляем значение inc(j); end; NewM[j]:=M[i]; // вставляем значение inc(j); end; Writeln('Новый массив ='); for i:=1 to NewN do begin write(NewM[i],' '); end; // формирование массива end. __________________________________________________ ______ Введите C 0 Введите N (N<=10) 10 Введите элементы массива 1 3 5 7 9 11 13 15 17 19 Новый массив = 1 0 3 5 0 7 9 0 11 13 0 15 17 0 19 __________________________________________________ ______ |
![]() |
![]() |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
#6 (permalink) |
Member
Регистрация: 29.01.2013
Сообщений: 91
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 565
|
![]()
5)
Код:
program Matrix1; var j,i,M,N:integer; a: array [1..10,1..10] of integer; minI,minJ:integer; begin // Ввод данных writeln('Введите числа M (M<=10) и N (N<=10)'); read(N); readln(M); // Решение minI:=1; minJ:=1; for i:=1 to N do begin for j:=1 to M do begin a[i,j]:=random(100); // заполнение матрицы случайными значениями if a[i,j]<a[mini,minj] then begin mini:=i; minj:=j; end; end; end; writeln('Исходный массив'); for i:=1 to N do begin writeln; for j:=1 to M do write(a[i,j]:3,' '); end; // Ответ for j:=1 to M do a[mini,j]:=0; for i:=1 to N do a[i,minj]:=0; writeln; writeln('Ответ'); for i:=1 to N do begin writeln; for j:=1 to M do write(a[i,j]:3,' '); end; end. |
![]() |
![]() |
![]() |
#7 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]() Цитата:
Код:
Type Num=Record X:Integer; Y:Integer; end; Var M,N,i,j,p,Q:Integer; Cross:Array[1..128] of Num; A:Array[1..8,1..16] of Integer; B1,B2:boolean; Begin M:=8; N:=16; Q:=0; Randomize; Writeln('Initial:'); For i:=1 to M do begin For j:=1 to N do begin A[i,j]:=95-Random(100); write(a[i,j]:4); if A[i,j]<0 then begin Inc(Q); Cross[Q].X:=i; Cross[Q].Y:=j; end; end; Writeln; end; Writeln; Writeln('Transformed:'); For i:=1 to M do begin B1:=True; for p:=1 to Q do if i=Cross[p].X then B1:=False; if B1 then for j:=1 to N do begin B2:=True; for p:=1 to Q do if j=Cross[p].Y then B2:=False; if B2 then write(A[i,j]:4); end; If B1 then Writeln; end; Readln End. |
|
![]() |
![]() |
![]() |
#8 (permalink) |
Member
Регистрация: 29.01.2013
Сообщений: 91
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 565
|
![]() Код:
program Matrix1; var j,i,M,N:integer; a: array [1..10,1..10] of integer; II,III,Jmin,Jmax:integer; min,max:integer; begin // Ввод данных writeln('Введите числа M (M<=10) и N (N<=10)'); read(N); readln(M); // Решение //minI:=1; //minJ:=1; for i:=1 to N do begin for j:=1 to M do begin a[i,j]:=random(100); // заполнение матрицы случайными значениями end; end; writeln('Исходный массив'); for i:=1 to N do begin writeln; for j:=1 to M do write(a[i,j]:3,' '); end; writeln; writeln('Ответ'); //////////////////////////////////////////////////////////// for i:=1 to N do begin jmax:=1; jmin:=1; for j:=1 to M do begin if a[i,j]>a[i,jmin] then jmin:=j; if a[i,j]<a[i,jmax] then jmax:=j; end; for III:=1 to N do begin if a[i,jmin]>=a[iii,jmin] then break; end; if iii=N then writeln('Седловая точка ',a[i,jmin],' координаты строка = ',i,' столбец = ',jmin); for III:=1 to N do begin if a[i,jmax]<=a[iii,jmax] then break; end; if iii=N then writeln('Седловая точка ',a[i,jmax],' координаты строка = ',i,' столбец = ',jmax); end; end. __________________________________________________ ________ Введите числа M (M<=10) и N (N<=10) 4 4 Исходный массив 84 74 15 43 6 34 3 62 65 57 37 28 83 73 48 71 Ответ Седловая точка 48 координаты строка = 4 столбец = 3 __________________________________________________ ___________ Чем меньше массив тем чаще появляются искомые элементы. |
![]() |
![]() |
![]() |
#9 (permalink) |
Новичок
Регистрация: 02.12.2012
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]()
Спасибо большое за помощь!
|
![]() |
![]() |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
Опции темы | |
Опции просмотра | |
|
|