Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Pascal. Алгоритмы. (http://www.tehnari.ru/f41/t31031/)

HD-boy 11.12.2009 12:08

Pascal. Алгоритмы.
 
Здравствуйте. Помогите пожалуйста с задачками на паскале. Задали на экзамен(

1. Даны целые числа a и b. Составить алгоритм для определения знака разности a-b. Разность не вычислять. Разрешается сравнивать числа a и b с нулем, а между собой можно сравнивать только модули a и b.

2. Составить алгоритм, в соответствии с которым с клавиатуры вводится последовательность чисел, признак окончаия ввода - нуль. Найти максимальное их введенных чисел. Определить, сколько раз оно встречалось в последовательности и превышает ли число его вхождение одну треть от общего количества введенных чисел.

Vladimir_S 11.12.2009 12:43

Цитата:

Сообщение от HD-boy (Сообщение 269257)
Здравствуйте. Помогите пожалуйста с задачками на паскале. Задали на экзамен(

1. Даны целые числа a и b. Составить алгоритм для определения знака разности a-b. Разность не вычислять. Разрешается сравнивать числа a и b с нулем, а между собой можно сравнивать только модули a и b.

Код:

IF (a>0) AND (b>0) THEN
 BEGIN
  IF ABS(a)>ABS(b) THEN WriteLn('Positive')
  ELSE
  IF ABS(a)<ABS(b) THEN WriteLn('Negative')
  ELSE
  WriteLn('Zero')
 END ELSE
IF (a<0) AND (b<0) THEN
 BEGIN
  IF ABS(a)>ABS(b) THEN WriteLn('Negative')
  ELSE
  IF ABS(a)<ABS(b) THEN WriteLn('Positive')
  ELSE
  WriteLn('Zero')
 END ELSE
IF (a>0) AND (b<0) THEN
 WriteLn('Positive')
 ELSE
IF (a<0) AND (b>0) THEN
 WriteLn('Negative')
 ELSE
IF (a=0) AND (b>0) THEN
 WriteLn('Negative')
 ELSE
IF (a=0) AND (b<0) THEN
 WriteLn('Positive')
 ELSE
IF (a<0) AND (b=0) THEN
 WriteLn('Negative')
 ELSE
IF (a>0) AND (b=0) THEN
 WriteLn('Positive')
 ELSE
IF (a=0) AND (b=0) THEN
 WriteLn('Zero');


Цитата:

2. Составить алгоритм, в соответствии с которым с клавиатуры вводится последовательность чисел, признак окончаия ввода - нуль. Найти максимальное их введенных чисел. Определить, сколько раз оно встречалось в последовательности и превышает ли число его вхождение одну треть от общего количества введенных чисел.
Код:

VAR
 A:ARRAY[1..100] of INTEGER;
 i,Max,N,Q:INTEGER;
BEGIN
 i:=0;
 REPEAT
  INC(i);
  Write('A[',i,']= ');
  ReadLn(A[i]);
 UNTIL A[i]=0;
 N:=i-1;
 Max:=A[1];
 FOR i:=2 TO N DO
  IF A[i]>Max THEN Max:=A[i];
 Q:=0;
 FOR i:=1 TO N DO
  IF A[i]=Max THEN INC(Q);
 WriteLn('The maximum value ',Max,' has ',Q,' entries');
 IF 1.0*Q/N>1.0/3 THEN
 WriteLn('Exceeds') ELSE WriteLn('Does not exceed');
END.


HD-boy 11.12.2009 12:53

Большое прибольшое спасибо! Вообще круть крутовская! Не знаю что б делал без вас!)))


Часовой пояс GMT +4, время: 07:45.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.