Начинаю серьёзно учить Паскаль и вот решил создать и пихать сюда все неясности, если вы конечно не противПервые вопросы:- Как в Паскале менять цвета?
 - Как  --//-- создать таблицу и что-нить в ней написать.
 - И может кто-нить меня раздуплит в массивах? ;D
 
  
 
 
 
  В модуле crt есть процедуры, которые тебе нужны. Вот формат процедуры : TextColor (a); где а - номер цвета.
 
 
 
 
  Ну цвета в Паскалу менять такой процедуркой:
TextColor(color);- в текстовом режиме;
SetColor(color);- в графическом режиме;
Таблицы делать (то есть я думаю ты имеешь в виду двумрный массив);
var a:array[1..n,1..m]of type;
где n-кол-во строк,а m-кол-во столбцов, а Type-это один из типов данных (integer,real,char и т.д. и т.п.).
Написать:
Код
for i:=1 to n do begin
  for j:=1 to m do begin
    a[i,j]:=...
    write(a[i,j,' ');
  end;
  writeln;
end;
Массив это упорядоченный набор однотипных данных записанных под одним именем.
В памяти элементы массива располагаются один за другим.
Так сопственно все, но ты еще чо-нибудь спрашивай,если надо.
 
 
 
 
 
  Во-первых, пасибо, во-вторых, идём дальше ;D
Зачем эти операторы?- delay(a);
 - Где на клаве можно непрерывную стрелку найти, всмысле чтоб на экране она была непрерывной, а не такой ---> , например.
 - Сколько цветов можно использовать в Паскале?
 - Что вот это такое? TextMode(OrigMode); Exit;
 - TextMode(CO80); я так понял это задание какого-то режима? Что он делает?
 
  
 
 
 
  Пока ответ только на первый вопрос:
Procedure Delay (Ms); MS- значение в миллисекундах. Для чего ? Задержка исполнения программы на заданное число миллисекунд. Delay - это стандартная процедура модуля crt.
 
 
 
 
  Ну например delay(2000)
Значит после 20000 милисекунд всё, что на экране исчезнет? ;D Для чего это применяется? На примере каком-нибудь объясните...
 
 
 
 
  Например:
сказано найти решение какого нибудь ур-я.Ты выводишь на печать:
Код
writeln(z:4:4);
delay(2000);
writeln('решено ур-е');
 - это значит, что после вывода на экран твоего ответа(z) пройдет 2000 миллисекунд и после этого появится надпись "решено ур-е"......
 
 
 
 
 
  2) такого вроде нет...
3)true color точно нет...
4)оригинальный текстовый режим
5)СО80  включает адаптер цветной графики и устанавливает цветной режим вывода данных с 80 знаками в строке.
 
 
 
 
  Ну труколор ясно что нет ;D
Оригинальный текстовый режим мне ничего не сказал, можно по подробнее, для чего, как, зачем... и т.д.
Добавлено:А опишите плиз какие функции входят в модуль CRT? И какие есть ещё модули и для чего они что в них входит? Спасибо! 
  
 
 
  pascal65536
  31.10.2002 20:04
  
 
  Мне кажется, что лучше обзавестись хоть какой-нибудь книжкой по паскалю. Там есть почти все ответы на эти вопрос и многие другие.
 
 
 
 
  Максимум вообще то 256 цветов.....
Согласен с вышесказанным-купи книгу..а пока тебе сюда: 
http://polybook.doc.nov.ru/p7103.htm
  
 
 
 
  Цитата
Максимум вообще то 256 цветов.....
Согласен с вышесказанным-купи книгу..а пока тебе сюда    
http://polybook.doc.nov.ru/p7103.htm Вообще то в текстовом режиме всего 16 цветов, а в графическом (при наличии соответствующего драйвера) 32 бита (true color)...
 
 
 
 
 
  MJ, а ты не подскажешь где эти дрова найти?
Добавлено (через 4 минуты):
Да... Про книжку... Советую тебе, Romario, купить книжку Фаронова!! "Turbo Pascal 7.0"!!! Там ты точно найдешь ответы на свои вопросы!! Там кстати усе достаточно понятно написано!!!!
 
 
 
 
  Цитата
MJ, а ты не подскажешь где эти дрова найти?
Были у меня, но потом винт накрылся и я всё потерял 

Ищи файл VESA32.BGI
Или ищи доку по VESA режимам. Там на самом деле всё просто.
 
 
 
 
 
  Спасибо, значит буду искать книгу...
 
 
 
 
  Спасибо,MJ!!!!Бум искать!!!
 
 
 
 
  Цитата
Вообще то в текстовом режиме всего 16 цветов, а в графическом (при наличии соответствующего драйвера) 32 бита (true color)... 
Слушай а что это за драйв такой?
 
 
 
 
 
  Советую купить книжку Культина "Самоучитель на Turbo Pascal 7.0". Книга отличная. Твсе очень доходчиво объяснено! Попробуй...может понравиться! ;) :-* 
  
 
 
 
  Цитата
Слушай а что это за драйв такой?
VESA32.BGI SVGA32.BGI
 
 
 
 
 
  У меня вопрос:
Как написать прогу, чтобы при запуске на экране появлялись рандомные числа, то-то вроде матрицы...
 
 
 
 
  Код
const n=5; m=7;
var a:array [1..n,1..m] of integer;i,j,a,b:integer;
begin
  Randomize;
  write('Введите промежуток, на котором заданы случайные числа');
  readln( a, b );
  for i:=1 to n do begin
    for j:=1 to m do begin
      a[i,j]:=Random(b-a+1)+a;
      write(a[i,j],' ');
    end;
    writeln;
  end;
  readln
end.
  
 
 
 
  Нет, вы не поняли.. не матрицы мне нужны, а чтобы при запуске программы по всему экрану то появлялись то ищезали разные числа... Как в фильме Матрица ;D
Добавлено (через 9 минут):Да совсем забыл ещё:
Как менять размер шрифта в Паскале....
И ещё я например хочу чтобы только одна строка в Паскаль была например красной, а когда командой textcolor(a); то всё, что ниже делается таким же цветом, как сделать так чтобы так делалось только с одной строкой или с двумя, а остальные оставались такими же.... Тоже самое с командой gotoxy... Подскажите : 
  
 
 
 
  Просто после того, как две строки выведутся красным цветом, примени снова команду Textcolor(a) для последующего текста.
 
 
 
 
  Я имел ввиду без команды.... есть такое? А если просто без команды textcolor(white) так чтоли?
 
 
 
 
  На всё нужна команда, просто так ничего не бывает ;)
Потренируешся с паскалем, поймёшь...
А вообще я считаю что начинать изучение языков программирования надо с простейших алгоритмов.
 
 
 
 
  Например, каких? Посоветуй.. буду начинать с них... ;D Что насчёт проги моей? :o
 
 
 
 
  У нас на сайте вроде раздел задачь где то был (точно не помею 

). Попробуй порешать задачки...
 
 
 
 
 
  Люди ! Пишите правильно !! А то я не могу читать кривые сабжы, где написано не по-русски !!!
 
 
 
 
  Нужно срочно решить эти задачи!!!
1 - Дано равносторонний треугольник со стороной a. Найти, длину стороны равнобольшого ему квадрата. Вичислить для таких значений:
a) a=7;
B) a=13
c) a=54
2 - Найти количество чисел кратных 7 от 7 до 7777 включительно. 
a) Используя цикл for;
B) Используя цикл while;
c) Используя цикл repeat.
3 - Написать программу нахождения суммы чисел: S=10+22+32+…+n2, если
a) n=7;
B) n=10;
c) n=12.
4 - Натуральное число называется идеальным, если оно равно суме всех своих делителей, кроме самого числа. Проверить, будет ли число n идеальным.
5 - Если целое число М делится нацело на целое число N, то вывести на экран частное от деления, в противном случае – сообщение «М на  N нацело не делится» и остаток.
Надеюсь поможете, заранее спасибо!
 
 
 
 
  Код
program a2;
var a:integer;
begin
  a:=0;
  for a:=1 to 7777 do
    if (a mod 7=0) then writeln(a);
  a:=a+1;
  readln;
  readln;
end.
Вместо for подставляешь while and repeat. Надеюсь эти констукции ты знаешь.. в цикле менять ничего не нужно, просто вместо for и т.д. делай например конструкцию while
Добавлено:Код
program a1;
var a,b,c,d: integer;
begin
  writeln('Введите a');
  readln( a );
  writeln('Введите b');
  readln( B );
  if (a mod b=0) then begin c:=a/b; writeln( c )
  else writeln('Не нацело делиться');
  d:=(a div B);
end.
Писал наспех, на кто что-то может и забыл написать, но прога сама правильная...
 
 
 
 
 
  Спасибо! Жду остальные...
 
 
 
 
  Решение 4 задачи
Код
program a4;
var n,s,i : integer;
begin
  writeln('Введите число');
  readln(n);
  s:=0;
  i:=0;
  for i:=1 to (n-1) do begin
    if (n mod i=0) then s:=s+i;
    i:=i+1;
  end;
  if s=n then writeln('Число идеальное')
  else writeln('Число не идеальное');
end.
Писал наспех, на кто что-то может и забыл написать, но прога сама правильная...
Про 3 задачу могу сказать, что там все делается очень просто, простейшим циклом for .. to ..do; Внутри цикла напиши такую штуку 
Код
s:=s+sqr(i);  i:=i+1;
То есть будет увелечение до указанного числа и плюс все будет суммироваться и возводится в квадрат ...
 
 
 
 
 
  Причём тут это: s:=s+sqr(i);  i:=i+1; ? Причём тут квадрат вообще?
 
 
 
 
  Я чо то не понял.Я ведь где-то здесь в форуме писал решение 3 задачи.
 
 
 
 
  Ну дык напиши еще разок !
 
 
 
 
  Цитата
Вместо for подставляешь while and repeat. Надеюсь эти констукции ты знаешь.. в цикле менять ничего не нужно, просто вместо for и т.д. делай например конструкцию while
Я бы внес некоторые коррективы в вашу программу. Вот что у меня получилось:
Для for:Код
var a:integer;
begin
  for a:=1 to 7777 do
    if (a mod 7=0) then writeln(a);
  readln;
end.
Для while:Код
var a:integer;
begin
  a:=7;
  while a<7777 do begin
    if (a mod 7=0) then writeln(a);
    a:=a+1;
  end;
  readln;
end.
Для repeat:Код
var a:integer;
begin
  a:=7;
  repeat
    if (a mod 7=0) then writeln(a);
    a:=a+1;
  until a>=7777;
  readln;
end.
Вроде бы все три проги составлены верно.
 
 
 
 
 
  Я предлагаю следующее решение для 3-й задачи:
Код
Program p3;
const n=12;
var i,s:integer;
begin
  s:=10;
  For i:=2 to n do begin
    s:=s+n*10+2;
    If i=7 then writeln('n=7  s=',s);
    If i=10 then writeln('n=10  s=',s);
  end;
  writeln('n=12  s=',s);
  readln;
end.
  
 
 
 
  Big, у тебя по-моему ошибочка в проге:
не 
for i:=2 to n do
s:=s+n*10+2;
а:
for i:=2 to n do
s:=s+i*10+2;
Во как!!!
 
 
 
 
  Кстати вот она моя прога(в смысле 3-я задача):
она правдо для любых n:
Код
program sum;
var n,i,sum:integer; 
begin 
  write('Введите номер -> '); 
  readln(n); 
  sum:=10; 
  for i:=2 to n do begin 
    sum:=sum+i*10+2; 
  end; 
  writeln ('Сумма чисел последовательности до n(10,22,32,42,....,n2) равна ',sum); 
  readln 
end.
  
 
 
  trminator
  25.11.2002 18:28
  
 
  Про книжку... Я учился по книжке тов. С. Н. Лукина "Turbo pascal 7.0 самоучитель для начинающих". А если владеешь английским, то бывает кнопочка F1  ;) (а где-то на этом сайте я недавно видел что-то про русский help)
 
 
 
 
  Ну что заждались?  ;) Вот и новая порция задачек!!!Задача 1Найти все натуральные числа от 1 до 200, у которых количество делителей равно К (К вводится с клавиатуры)
Задача 2Даны натуральное число N и последовательность A1, A2, …, A N, AN+1. Определить наибольшее из нечетных и количество четных чисел, входящих в последовательность A1, A2, …, A N, AN+1. 
Очень жду :
  
 
 
 
  Решение 1 задачки на Delphi:
Код
procedure TForm1.Edit1Change(Sender: TObject);
var
  D, F, C, R, T: Integer;
begin
  ListBox1.Clear; // Очищаем список
  D := StrToIntDef(Edit1.Text, 0);
  for F := 1 to 200 do begin
    C := 0;
    T := F;
    while T<>1 do begin
      R := 2;
      while (T mod R)<>0 do
        Inc( r );
      T := T div R;
      Inc( c );
    end;
    if C=D then
      ListBox1.AddItem(IntToStr(F), nil); // Добавляем число в список
  end;
end;
  
 
 
 
  Цитата
Big, у тебя по-моему ошибочка в проге:
не 
for i:=2 to n do
s:=s+n*10+2;
а:
for i:=2 to n do
s:=s+i*10+2;
Во как!!!
Да согласен ошибка есть. Но в целом прога написана верно!
 
 
 
 
 
  На Пасе:
Код
program delit;
const n=200;
var i,k,m,l,r:integer;
begin
  write('Введите количество нужных делителей->');
  readln(k);
  r:=0;m:=0;
  for i:=1 to n do begin
    for l:=1 to i do
      if l mod i=0 then m:=m+1;
      if m=k then r:=r+1;
  end;
  writeln('Кол-во чисел, у котор. кол-во делит =k равно->',r);
  readln
end.
Сразу говорю, что не проверял.
 
 
 
 
 
  Так чуваки!!!Я малясь не то сделал.
Вот то что надо.
Код
program delit; 
const n=200; 
var i,k,m,l,r:integer;a:array [1..n] of integer; 
begin 
  write('Введите количество нужных делителей->'); 
  readln(k); 
  r:=0;m:=0; 
  for i:=1 to n do begin 
    for l:=1 to i do  
      if l mod i=0 then m:=m+1; 
    if m=k then begin
      r:=r+1; 
      a[r]:=i;
    end;
  end;
  writeln ('Вот числа, у которых кол-во делителей =k->');
  for i:=1 to r do
    write(a[i],' '); 
  readln 
end.
Сразу говорю, что не проверял.
 
 
 
 
 
  Я не понимаю вот этого:
Цитата
Сразу говорю, что не проверял.
У вас времени не хватает переименовать txt в pas и нажать Ctrl + F9... Давайте проверять ;) Уж если не работает, но вы считаете алгоритм правильным, тогда постите, будем все вместе разбирать 
  
 
 
 
  Времени правдо нет.Заходишь, думаешь,что задача легкая, пишешь, а уж затем проверяешь.
 
 
 
 
  Мое решение неверно!!!
Пойду дорабатывать!
 
 
 
 
  Мне бы в Паскале это всё :
  
 
   
  Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, 
нажмите сюда.