помогите пожалуйста... у меня логика отсутсвует... ----- Одномерный массив заполняется случйными целыми числами от -50 до +50. Если кол-во отрицат. элементов больше, то сделать их с плюсом. Если колв-во положительных, то сделать из с минусом.
PHP: uses crt; var a:array[1..100] of integer; i,k,l,x:integer; begin randomize; write('Введите размерность массива:'); readln(x); for i:=1 to x do begin a[i]:=Random (50) -100; write(a[i],' '); if a[i]<0 then k=k+1; if a[i]>0 then l=l+1; end; if k>l then begin for i:=1 to x do begin if a[i]<0 then a[i]=-a[i]; end; end; else begin for i:=1 to x do begin if a[i]>0 then a[i]=-a[i]; end; end; end; for i:=1 to x do begin write(a[i],' '); end; end. как то так... думаю ошибки сможешь подправить, но суть такая... давно с паскалем не общался
Синтаксиса Паскаля я не помню, но задачу можно обозначить следующим образом. Создаём инкрементный цикл с начальным значением -50, конечным - 50. Каждая итерация цикла должна генерировать случайное число, допустим -1 ИЛИ 1. Присваиваем массиву с индексом шага итерации то самое случайное число. Проверяем, если число отрицательное, то инкрементируем значение одной переменной, иначе - другой. После цикла инициации массива проверяем значения переменных, которые являются счётчиком отрицательных/положительных значений массива. И исходя из них, в новом цикле изменяем значения массива. P.S. Накосячил с условием. Начальный и конечный шаги цикла изменить под нужное значение. Радиус генерации изменить на -50 и 50. Кстати, что там с нулём? Его следует считать как положительное, или вообще не учитывать в счётчике? =) Этот пост не показывает решение, а лишь указывает на алгоритм реализации, из чего следует более пользы, чем от копирования готового результата. Так что постарайся решить сам. В крайнем случае подсмотри на ответ комрадов.
Code: program xxx; Var a:array[1..101] of integer; i,k,j,h:byte; [COLOR=Green] {j-Счетчик отрицательных чисел,h-положительных}[/COLOR] Begin randomize; Write('k:');Readln(k); For i:=1 to k do Begin a[i]:=Random(101)-50; If a[i] < 0 then j:= j+1; [COLOR=Green]{считаем кол-во отриц. чисел}[/COLOR] If a[i] >= 0 then h:= h+1; [COLOR=Green]{считаем кол-во полож. чисел}[/COLOR] Writeln('a[',i,']= ',a[i]); End; If j > h then [COLOR=Green]{Если отриц. больше то}[/COLOR] Begin For I:= 1 to k do If a[i] < 0 then a[i]:=a[i]*-1 [COLOR=Green]{То каждый отриц.эл. делаем полож}[/COLOR] End Else [COLOR=Green]{Если полож.больше то}[/COLOR] Begin For I:= 1 to k do If a[i] > 0 then a[i]:=a[i]*-1 [COLOR=Green] {То каждый полож.эл делаем отриц}[/COLOR] End; Writeln('==========='); For i:=1 to k do [COLOR=Green]{Выводим массив}[/COLOR] Begin Writeln('a[',i,']= ',a[i]); End; End. Если отриц.элементов больше чем полож. то делаем все отриц.эл. положительными и наоборот. -Работает
сделайте мне тоже плиз!!!! помогите с заданием, плиз(на паскале) Распечaтать анкетные данные студентов, получивших в послeднюю сессию оцeнки 2 и 3. (число учеников (n)>=10). вот нашел очень похожую: помогите переделать под мое задание Известен набор продуктов: хлеб, масло, сыр, молоко, имеющихся в ассортименте магазинов. В 3 магазина поставлены отдельные виды этих продуктов. Требуется построить множества А, В, С, которые содержат соответственно: • продукты, имеющиеся одновременно во всех магазинах; • продукты, имеющиеся, по крайней мере, в одном из магазинов; • продукты, которых нет ни в одном из магазинов. PHP: Const N=3; Type Product=(bread,butter,cheese,milk); {продукты } Assort=set of product; {ассортимент продуктов } Shop=array[1..n] of assort; {наличие продуктов в магазинах } Var M1:shop; X: Product; A,b,c,xm1: assort; I,j,v,iw:integer; BEGIN For I:=1 to n do Begin Xm1:=[]; Writeln(‘введите номера продуктов ‘,I:2, ‘-го магазина=‘); Repeat Read(iw); Case iw of 1:x:=bread; 2:x:=butter; 3:x:=cheese ; 4:x:= milk; else write(‘номера продуктов 1..4’); end; {case} xm1:=xm1+[x]; {наличие продуктов в одном магазине } until eoln; m1[1]:=xm1 end; {конец цикла по магазинам } {получение множеств А,В,С } A:=m1[1]; B:=[]; For I:=1 to 3 do Begin A:=A*m1[1]; ];{одновременно во всех } B:=B+ m1[1{хотя бы в одном } C:=[ bread.. milk]-B; {нет ни в одном } End; For I:=1 to 3 do Begin Case i of 1: Writeln(‘продукты, имеющиеся во всех магазинах ‘); 2: Writeln(‘ассортимент продуктов ‘); 3: Writeln(‘продукты, которых нет ни в одном магазине ‘); end; For x:=bread to milk do If x in a then Case x of Bread: Write(‘хлеб ‘); Butter: Write(‘масло ‘); Cheese: Write(‘сыр ‘); Milk: Write(‘молоко ‘); end; {case} if I:=1 then a:=b else a:=c; writeln end END.
Матрос: Code: Const N=10; //кол-во студентов Var name:array [1..N] of string;//массив с именами студентов ocenka:array [1..N] of string;//массив с оценками студентов за последнюю сессию. i:integer;//переменная счетчика begin For i:=1 to N do //от 1 до N Begin Writeln(‘введите имя студента‘); read(name[i]); //считываем имя студента writeln('введите его оценку за последнюю сессию'); read(ocenka[i]); //считываем его оценку end; for i:=1 to N do //от 1 до N if (ocenka[i]=2) or (ocenka[i]=3) then // если оценка i-ого студента равна 2 или 3, то.. writeln(name[i]);//выведим его имя на экран. . END. Если я не ошибся, то все правильно ..
Ребят, пожалуйста помогите с 3ей! У меня руки из жопки и из-за нее горит зачет....(((( Используйте пожалуйста процедуры