rastaman 0 Жалоба Опубликовано 9 июня, 2011 Массивы A и B упорядочены по возрастанию их элементов. Объединить эти массивы в один массив, состоящий из элементов массивов A и B, больших 5. Элементы массива C расположить в порядке возрастания.значения элементов массивов A= (-3,7,8,10,15); B= (4,6,8,16). пожалуйста помогите а то курсовую надо сдавать а с этой программой не как не разберусь. Поделиться сообщением Ссылка на сообщение
Sot 7 Жалоба Опубликовано 9 июня, 2011 Массивы A и B упорядочены по возрастанию их элементов. Объединить эти массивы в один массив, состоящий из элементов массивов A и B, больших 5. Элементы массива C расположить в порядке возрастания.значения элементов массивов A= (-3,7,8,10,15); B= (4,6,8,16). пожалуйста помогите а то курсовую надо сдавать а с этой программой не как не разберусь. Чето типа этого: const SizeOfA = 5; SizeOfB = 4; var A: array[1..SizeOfA] of integer = (-3, 7, 8, 10, 15); B: array[1..SizeOfB] of integer = (4, 6, 8, 16); C: array[1..SizeOfA+SizeOfB] of integer; SizeOfC, i, j, k: integer; begin SizeOfC := 0; i := 0; j := 0; k := 0; while (A[i] <= 5) and (i <= SizeOfA) do inc(i); while (B[j] <= 5) and (j <= SizeOfB) do inc(j); while (i <= SizeOfA) or (j <= SizeOfB) do begin if (i <= SizeOfA) and (j <= SizeOfB) then if A[i] < B[i] then begin C[k] := A[i]; inc(k); C[k] := B[j]; inc(k); inc(i); inc(j); end else begin C[k] := B[j]; inc(k); C[k] := A[i]; inc(k); inc(j); ink(i); end else if i <= SizeOfA then begin C[k] := A[i]; inc(k); inc(i); end else begin C[k] := B[j]; inc(k); inc(j); end; end; SizeOfC := k-1; end; Давай магарыч! Поделиться сообщением Ссылка на сообщение
rastaman 0 Жалоба Опубликовано 10 июня, 2011 мен спасибо но она чёт не работает((( else begin C[k] := B[j]; inc(k); C[k] := A; inc(k); inc(j); ink(i);вот на эту строку ругается(undeklared identifier;ink.) end Поделиться сообщением Ссылка на сообщение
Sot 7 Жалоба Опубликовано 10 июня, 2011 мен спасибо но она чёт не работает(((else begin C[k] := B[j]; inc(k); C[k] := A; inc(k); inc(j); ink(i);вот на эту строку ругается(undeklared identifier;ink.) end Ну во первых это банальная описка(я не проверял, что пишу). И если ты не в состоянии поправить такую банальную ерунду, значит знания твои в Delphi = 0 и помогать дальше вообще не хочется. А во вторых там еще и ошибка в алгоритме присутствует. Не на всех входных данных оно работать будет (тут реально мой косяк). Поделиться сообщением Ссылка на сообщение
Sot 7 Жалоба Опубликовано 10 июня, 2011 Так попробуй. const SizeOfA = 5; SizeOfB = 4; var A: array[1..SizeOfA] of integer = (-3, 7, 8, 10, 15); B: array[1..SizeOfB] of integer = (4, 6, 8, 16); C: array[1..SizeOfA+SizeOfB] of integer; SizeOfC, i, j, k: integer; begin SizeOfC := 0; i := 0; j := 0; k := 0; while (A[i] <= 5) and (i <= SizeOfA) do inc(i); while (B[j] <= 5) and (j <= SizeOfB) do inc(j); while (i <= SizeOfA) or (j <= SizeOfB) do begin if (i <= SizeOfA) and (j <= SizeOfB) then if A[i] < B[i] then begin C[k] := A[i]; inc(k); inc(i); end else begin C[k] := B[j]; inc(k); inc(j); end else if i <= SizeOfA then begin C[k] := A[i]; inc(k); inc(i); end else begin C[k] := B[j]; inc(k); inc(j); end; end; SizeOfC := k-1; end; Поделиться сообщением Ссылка на сообщение
rastaman 0 Жалоба Опубликовано 14 июня, 2011 спасибо. я в делфи дуб дубом поэтому и попросил помощи. Поделиться сообщением Ссылка на сообщение
rastaman 0 Жалоба Опубликовано 16 июня, 2011 терь работает но не совсем верно(((всю эту байду нужно вывести в консоль + дописывает 2 лишних элемента 4 и 0(хотя нуля вобще нету) Поделиться сообщением Ссылка на сообщение
rastaman 0 Жалоба Опубликовано 16 июня, 2011 разобрался сам немного вот мои наработки объединяет выстраивает по возростанию но не пойму как исключить элементы меньше 5 program Project1; {$APPTYPE CONSOLE} uses SysUtils, Math; const A : array[1..5] of Integer = (-3,7,8,10,15); B : array[1..4] of Integer = (4,6,8,16); var C:array[1..7] of integer; j,k:integer; function CopyMass(A,B: array of Integer): Integer; var i,j,k:integer; procedure CopyElement; begin k := k + 1; C[k] := B[j]; j := j +1; end; begin k := 0; j := 0; for i:=0 to High(A) do begin k := k + 1; C[k] := A[ i ]; while (B[j] <A[i+1]) and (j <= High(B)) do CopyElement; end; while j <= High(B) do CopyElement; CopyMass := k; end; begin if A[1] < B[1] then k := CopyMass(A,B) else k := CopyMass(B,A); for j:=1 to k do Write(C[j]:3); ReadLn; end. Поделиться сообщением Ссылка на сообщение
Sot 7 Жалоба Опубликовано 16 июня, 2011 Еще один баг у себя нашел. const SizeOfA = 5; SizeOfB = 4; var A: array[1..SizeOfA] of integer = (-3, 7, 8, 10, 15); B: array[1..SizeOfB] of integer = (4, 6, 8, 16); C: array[1..SizeOfA+SizeOfB] of integer; SizeOfC, i, j, k: integer; begin SizeOfC := 0; i := 1; j := 1; k := 1; while (A[i] <= 5) and (i <= SizeOfA) do inc(i); while (B[j] <= 5) and (j <= SizeOfB) do inc(j); while (i <= SizeOfA) or (j <= SizeOfB) do begin if (i <= SizeOfA) and (j <= SizeOfB) then if A[i] < B[i] then begin C[k] := A[i]; inc(k); inc(i); end else begin C[k] := B[j]; inc(k); inc(j); end else if i <= SizeOfA then begin C[k] := A[i]; inc(k); inc(i); end else begin C[k] := B[j]; inc(k); inc(j); end; end; SizeOfC := k-1; end; Поделиться сообщением Ссылка на сообщение
rastaman 0 Жалоба Опубликовано 16 июня, 2011 Еще один баг у себя нашел. const SizeOfA = 5; SizeOfB = 4; var A: array[1..SizeOfA] of integer = (-3, 7, 8, 10, 15); B: array[1..SizeOfB] of integer = (4, 6, 8, 16); C: array[1..SizeOfA+SizeOfB] of integer; SizeOfC, i, j, k: integer; begin SizeOfC := 0; i := 1; j := 1; k := 1; while (A[i] <= 5) and (i <= SizeOfA) do inc(i); while (B[j] <= 5) and (j <= SizeOfB) do inc(j); while (i <= SizeOfA) or (j <= SizeOfB) do begin if (i <= SizeOfA) and (j <= SizeOfB) then if A[i] < B[i] then begin C[k] := A[i]; inc(k); inc(i); end else begin C[k] := B[j]; inc(k); inc(j); end else if i <= SizeOfA then begin C[k] := A[i]; inc(k); inc(i); end else begin C[k] := B[j]; inc(k); inc(j); end; end; SizeOfC := k-1; end; уже почти работает как надо осталось только выстроить по возростанию и убрать ноль.спасибо чувак большое) Поделиться сообщением Ссылка на сообщение
Sot 7 Жалоба Опубликовано 16 июня, 2011 уже почти работает как надо осталось только выстроить по возростанию и убрать ноль.спасибо чувак большое) Таки добрался я до делфей. Нуля там никакого нету. Вот полностью рабочий вариант (еще один баг отловил): const SizeOfA = 5; SizeOfB = 4; var A: array[1..SizeOfA] of integer = (-3, 7, 8, 10, 15); B: array[1..SizeOfB] of integer = (4, 6, 8, 16); C: array[1..SizeOfA+SizeOfB] of integer; SizeOfC, i, j, k: integer; begin SizeOfC := 0; i := 1; j := 1; k := 1; while (A[i] <= 5) and (i <= SizeOfA) do inc(i); while (B[j] <= 5) and (j <= SizeOfB) do inc(j); while (i <= SizeOfA) or (j <= SizeOfB) do begin if (i <= SizeOfA) and (j <= SizeOfB) then if A[i] < B[j] then begin C[k] := A[i]; inc(k); inc(i); end else begin C[k] := B[j]; inc(k); inc(j); end else if i <= SizeOfA then begin C[k] := A[i]; inc(k); inc(i); end else begin C[k] := B[j]; inc(k); inc(j); end; end; SizeOfC := k-1; end; Поделиться сообщением Ссылка на сообщение
rastaman 0 Жалоба Опубликовано 16 июня, 2011 вот есть ноль( program Project1; {$APPTYPE CONSOLE} uses SysUtils; const SizeOfA = 5; SizeOfB = 4; var A: array[1..SizeOfA] of integer = (-3, 7, 8, 10, 15); B: array[1..SizeOfB] of integer = (4, 6, 8, 16); C: array[1..SizeOfA+SizeOfB] of integer; SizeOfC, i, j, k: integer; begin SizeOfC := 0; i := 1; j := 1; k := 1; while (A[i] <= 5) and (i <= SizeOfA) do inc(i); while (B[j] <= 5) and (j <= SizeOfB) do inc(j); while (i <= SizeOfA) or (j <= SizeOfB) do begin if (i <= SizeOfA) and (j <= SizeOfB) then if A[i] < B[j] then begin C[k] := A[i]; inc(k); inc(i); end else begin C[k] := B[j]; inc(k); inc(j); end else if i <= SizeOfA then begin C[k] := A[i]; inc(k); inc(i); end else begin C[k] := B[j]; inc(k); inc(j); end; end; SizeOfC := k-1; for j:=1 to k do Write(C[j]:3); readln end.[attachment=979:ss.png] Поделиться сообщением Ссылка на сообщение
Sot 7 Жалоба Опубликовано 16 июня, 2011 Кашмар... program Project1; {$APPTYPE CONSOLE} uses SysUtils; const SizeOfA = 5; SizeOfB = 4; var A: array[1..SizeOfA] of integer = (-3, 7, 8, 10, 15); B: array[1..SizeOfB] of integer = (4, 6, 8, 16); C: array[1..SizeOfA+SizeOfB] of integer; SizeOfC, i, j, k: integer; begin SizeOfC := 0; i := 1; j := 1; k := 1; while (A[i] <= 5) and (i <= SizeOfA) do inc(i); while (B[j] <= 5) and (j <= SizeOfB) do inc(j); while (i <= SizeOfA) or (j <= SizeOfB) do begin if (i <= SizeOfA) and (j <= SizeOfB) then if A[i] < B[j] then begin C[k] := A[i]; inc(k); inc(i); end else begin C[k] := B[j]; inc(k); inc(j); end else if i <= SizeOfA then begin C[k] := A[i]; inc(k); inc(i); end else begin C[k] := B[j]; inc(k); inc(j); end; end; SizeOfC := k-1; for j:=1 to SizeOfC do Write(C[j]:3); readln end. Поделиться сообщением Ссылка на сообщение
rastaman 0 Жалоба Опубликовано 17 июня, 2011 ЗНАЮ ЗНАЮ Я ИДИОТ спасибо большое Поделиться сообщением Ссылка на сообщение
rastaman 0 Жалоба Опубликовано 17 июня, 2011 Завтра защита пожелайте мне удачи))) Поделиться сообщением Ссылка на сообщение
Sot 7 Жалоба Опубликовано 17 июня, 2011 Завтра защита пожелайте мне удачи))) Удачи Поделиться сообщением Ссылка на сообщение
rastaman 0 Жалоба Опубликовано 18 июня, 2011 Sot спасибо большое))кста я защитился) Поделиться сообщением Ссылка на сообщение
Sot 7 Жалоба Опубликовано 18 июня, 2011 Sot спасибо большое))кста я защитился) Спасибо не булькает! Магарыч где? Поделиться сообщением Ссылка на сообщение
Sot 7 Жалоба Опубликовано 19 июня, 2011 те какой? Любой 40° Поделиться сообщением Ссылка на сообщение
rastaman 0 Жалоба Опубликовано 19 июня, 2011 хаха где тебя встретить можно? Поделиться сообщением Ссылка на сообщение
Sot 7 Жалоба Опубликовано 20 июня, 2011 хаха где тебя встретить можно? На западном я. Подробности в ЛС. Поделиться сообщением Ссылка на сообщение