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

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

Андрей Романюк 14.06.2012 00:14

Одномерный массив
 
Вывести на экран одномерный массив, раскрасив в нем красным цветом положительные элементы, расположенные после максимального элемента.
Код:

{ђ®¬**оЄ 251}
program romanuk9_2;
uses crt;
type Mas = array[1..100] of integer;
var  A:mas;
    b,i,c,s,n,m:integer;
begin
  clrscr;
  textbackground(white);
  clrscr;
  textcolor(black);
  s:=1;
  writeln('введите кол-во символов массива*');
  readln(b);
  writeln;writeln;
  randomize;
  for i:=1 to b do begin

    A[i]:=random(200)-100;
    write(A[i]:5);
    end;
    writeln;
    for i:=1 to b do begin



    write(i:5)
    end;
    writeln('  *номера элементов');
    writeln;
    writeln;
    writeln('введите номер 1-го (+)элемента*');

    readln(n);
    writeln('введите номер последнего (+)элемента*');

    readln(m);
    for i:=1 to b do begin
    if i=n then textcolor(green)
    else textcolor(black);
    if i=m then textcolor(blue)
    else textcolor(black);
    write(A[i]:5);
    end;
    writeln;
      readln;
end.

вот, это ,конечно, в Москву через Китай, но по другому не смог.....и то не правильно, как мне теперь первый элемент раскрасить?( он мне только последний красит(

Vladimir_S 14.06.2012 11:02

Цитата:

Сообщение от Андрей Романюк (Сообщение 748709)
вот, это ,конечно, в Москву через Китай, но по другому не смог.....и то не правильно, как мне теперь первый элемент раскрасить?( он мне только последний красит(

Да уж... кошмар! И чего, спрашивается, Вы тут понакрутили? Боюсь, без поллитры никак не разобраться, а я на работе... В общем, вот (если Вы правильно сформулировали задачу):
Код:

uses crt;
type
 Mas = array[1..100] of integer;
var
 A:mas;
 b,i,s:integer;
begin
 textbackground(white);
 clrscr;
 textcolor(black);
 write('Введите кол-во символов массива: ');
 readln(b);
 writeln;
 writeln;
 randomize;
 for i:=1 to b do
  begin
  A[i]:=random(200)-100;
  write(A[i]:5);
  end;
 writeln;
 writeln;
 s:=1;
 for i:=2 to b do
  if A[i]>A[s] then s:=i;
 for i:=1 to b do
  begin
  if (i>s) and (A[i]>0) then
    textcolor(red)
  else
    textcolor(black);
  write(A[i]:5);
  end;
 readln;
 NormVideo;
end.

И всего-то.

Андрей Романюк 15.06.2012 15:47

Цитата:

Сообщение от Vladimir_S (Сообщение 748821)
Да уж... кошмар! И чего, спрашивается, Вы тут понакрутили? Боюсь, без поллитры никак не разобраться, а я на работе... В общем, вот (если Вы правильно сформулировали задачу):
И всего-то.


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

Vladimir_S 15.06.2012 16:53

Цитата:

Сообщение от Андрей Романюк (Сообщение 749524)
эммм...да, с заданием я накасячил....другой вариант написал, моя "программа" сделана по другому условию:
ввести массив и раскрасить зеленым первый положительный элемент массива, а последний положительный элемент раскрасить синим)))
(именно по этому условию мне нужна помощь)

Еще проще:
Код:

uses crt;
type
 Mas = array[1..100] of integer;
var
 A:mas;
 b,i,i1,i2:integer;
begin
 textbackground(white);
 clrscr;
 textcolor(black);
 write('Введите кол-во символов массива: ');
 readln(b);
 writeln;
 writeln;
 randomize;
 for i:=1 to b do
  begin
  A[i]:=random(200)-100;
  write(A[i]:5);
  end;
 writeln;
 writeln;
 i1:=0;
 Repeat
  Inc(i1);
 Until A[i1]>0;
 i2:=b+1;
 Repeat
  Dec(i2);
 Until A[i2]>0;
 for i:=1 to b do
  begin
  if i=i1 then
    textcolor(green)
  else
  if i=i2 then
    textcolor(blue)
  else
    textcolor(black);
  write(A[i]:5);
  end;
 readln;
 NormVideo;
end.

Ну и какие еще будут варианты типа "ах да, на самом деле тут надо..."?

Андрей Романюк 15.06.2012 17:30

Цитата:

Сообщение от Vladimir_S (Сообщение 749560)
Еще проще:
Ну и какие еще будут варианты типа "ах да, на самом деле тут надо..."?

аха)вариантов больше нет , есть вопрос:
зачем вы написали такую строку"NormVideo;"она ведь на программу не влияет...и что это вообще такое?

Vladimir_S 15.06.2012 20:54

Цитата:

Сообщение от Андрей Романюк (Сообщение 749588)
есть вопрос: зачем вы написали такую строку"NormVideo;"она ведь на программу не влияет...и что это вообще такое?

В принципе, необязательная команда. Но дело в том, что напарывался на ситуации, когда после прогона программы с CRT-шными финтифлюшками-рюшечками типа игр с цветами фона и шрифта, эти измененные настройки "застревали" в системе. Поэтому если уж играть в такие игры, то лучше на всякий пожарный в самом конце воткнуть команду NormVideo; , которая вернет все цветовые настройки к дефолтным.


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

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