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

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

matrinishna 15.12.2010 23:04

Проблема с Паскалем
 
помиге мне пожалуйста срочно!я недавно приехала с соревнований, а преподша не вошла в моё положение и задала мне сверх нормы.....прошу кому не сложно выручите меня (обычный паскаль. НЕ ТУРБО):tehnari_ru_138:


Minmax26.Дно целое число N и набор из N целых чисел. Найти максимальное количество четных чисел в наборе, идущих подряд. Если четные числа в наборе отсутствуют, то вывести 0.
Minmax19. Дано целое число N и набор из N целых чисел. Найти количество минимальных элементов из данного набора.
Array26. Дан целочисленный массив размера N. Проверить, чередуются ли в нем четные и нечетные числа. Если чередуются, то вывести 0, если нет,
то вывести порядковый номер первого элемента, нарушающего закономерность.
Array19. Дан целочисленный массив A размера 10. Вывести порядковый номер последнего из тех его элементов Aк, которые удовлетворяют двойному неравенству A1 < AK < A10. Если таких элементов нет, то вывести 0.

matrinishna 15.12.2010 23:31

пожалуйста кто нибудь помогите!

AlexZir 16.12.2010 04:24

Цитата:

Сообщение от matrinishna (Сообщение 430121)
Array19. Дан целочисленный массив A размера 10. Вывести порядковый номер последнего из тех его элементов Aк, которые удовлетворяют двойному неравенству A1 < AK < A10. Если таких элементов нет, то вывести 0.

Тут нужно рассматривать разные случаи, к примеру, если главное условие выполняется, не выполняется и невозможно.
Листинг следующий:
Код:

program mass;
var a: array[1..10] of integer;
i,k:integer;
begin
for i:=1 to 10 do
readln(a[i]);
k:=0;
if a[1]<a[10]
then
  begin for i:=2 to 9 do
          if (a[i]>a[1]) and a[i]<a[10] then k:=i;
          writeln(k);
  end
else writeln('неравенство не соблюдено, первый элемент не меньше десятого');
readln
end.


Vladimir_S 16.12.2010 11:02

Цитата:

Сообщение от matrinishna (Сообщение 430121)
Minmax26.Дно целое число N и набор из N целых чисел. Найти максимальное количество четных чисел в наборе, идущих подряд. Если четные числа в наборе отсутствуют, то вывести 0.

Код:

VAR
 A:ARRAY[1..200] of WORD;
 N,N_even,N_even_max:Byte;
 i:Integer;
BEGIN
 Write('N= ');
 ReadLn(N);
 For i:=1 to N do
  begin
  Write('A[',i:2,']= ');
  ReadLn(A[i]);
  end;
 N_even_max:=0;
 i:=0;
 Repeat
  Inc(i);
 Until ((A[i] mod 2)=0) or (i=N);
 If ((A[i] mod 2)=0) and (i=N) then
  N_even_max:=1
 else
  Begin
  i:=0;
  Repeat
    N_even:=0;
    repeat
    Inc(i);
    until ((A[i] mod 2)=0) or (i=N);
    If i<N then
    begin
      N_even:=1;
      repeat
      Inc(N_even);
      Inc(i);
      until ((A[i] mod 2)=1) or (i=N);
      If (i<N) or ((i=N) and ((A[i] mod 2)=1)) then Dec(N_even);
    end;
    If N_even_max<N_even then N_even_max:=N_even;
  Until i=N;
  End;
 WriteLn('Max number of even adjacent elements is ',N_even_max);
 ReadLn;
END.


Vladimir_S 16.12.2010 11:11

Цитата:

Сообщение от matrinishna (Сообщение 430121)
Minmax19. Дано целое число N и набор из N целых чисел. Найти количество минимальных элементов из данного набора.

Ну это совсем просто:
Код:

VAR
 A:ARRAY[1..200] of WORD;
 A_min:WORD;
 N,N_min:Byte;
 i:Integer;
BEGIN
 Write('N= ');
 ReadLn(N);
 For i:=1 to N do
  begin
  Write('A[',i:2,']= ');
  ReadLn(A[i]);
  end;
 A_min:=A[1];
 For i:=2 to N do
  If A[i]<A_min then A_min:=A[i];
 N_min:=0;
 For i:=1 to N do
  If A[i]=A_min then Inc(N_min);
 WriteLn('Number of minimum elements is ',N_min);
 ReadLn;
END.


Vladimir_S 16.12.2010 14:22

Цитата:

Сообщение от matrinishna (Сообщение 430121)
Array26. Дан целочисленный массив размера N. Проверить, чередуются ли в нем четные и нечетные числа. Если чередуются, то вывести 0, если нет, то вывести порядковый номер первого элемента, нарушающего закономерность.

Код:

VAR
 A:ARRAY[1..200] of WORD;
 N:Byte;
 i:Integer;
BEGIN
 Write('N= ');
 ReadLn(N);
 For i:=1 to N do
  begin
  Write('A[',i:2,']= ');
  ReadLn(A[i]);
  end;
 i:=2;
 If (A[1] mod 2)=1 then
  begin
  Repeat
    Inc(i);
  Until ((A[i] mod 2)<>(i mod 2)) or (i=N);
  If (i=N) and ((A[N] mod 2)=(N mod 2)) then
    WriteLn('0')
  else
    WriteLn('The element number ',i,' breaks the sequence');
  end
 else
  begin
  Repeat
    Inc(i);
  Until ((A[i] mod 2)=(i mod 2)) or (i=N);
  If (i=N) and ((A[N] mod 2)<>(N mod 2)) then
    WriteLn('0')
  else
    WriteLn('The element number ',i,' breaks the sequence');
  end;
 ReadLn;
END.



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

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