Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Турбо Паскаль. Программирование на Pascal
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ]
Модераторы: paradise, KMA
  

KMA



Долгожитель

ditar есть такая тема, не знаю, изучал ли ты метки или нет, но можно сделать так:

Code Sample:
while true do  
 begin
   u:=readkey;
   case u of
   #49:t.Moveto(-1,1);
   #50:t.Moveto(0,1);
   #51:t.Moveto(1,1);
   #52:t.Moveto(-1,0);
   #54:t.Moveto(1,0);
   #55:t.Moveto(-1,-1);
   #56:t.Moveto(0,-1);
   #57:t.Moveto(1,-1);
  #27: goTo graph_end
    end;
   end;
graph_end:
{далее твой код}



Но это пример плохого программинга, есть более реальные вещи, заменить твой бесконечный цикл этим:

Code Sample:
  
 repeat
   u:=readkey;
   case u of
    #49:t.Moveto(-1,1);
    #50:t.Moveto(0,1);
    #51:t.Moveto(1,1);
    #52:t.Moveto(-1,0);
    #54:t.Moveto(1,0);
    #55:t.Moveto(-1,-1);
    #56:t.Moveto(0,-1);
    #57:t.Moveto(1,-1);  
   end;
until u=#27;



Твой проблема была в том, что ты делал бесконечный цикл (выполнять пока правда (при этом правда константа)). Аналог вечных циклов, типа
Code Sample:
 jmp $. 


Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 10 мая 2007 22:59 | IP
kub


Новичок

Народ, если кто-либо разбирается, то помогите пожалуста

дан текстовый файл input.txt, состоящий из слов, разделенных пробелами. В конце предложения стоит точка. Найти самое длинное слово-перевертыш, если таких слов несколько – рассмотреть все. Найденные слова вывести на экран и в файл output.txt.

Заранее спасибо

Всего сообщений: 10 | Присоединился: апрель 2007 | Отправлено: 10 мая 2007 23:16 | IP
KMA



Долгожитель


хотя интересно, что будет если решить задачку не в общем, а в частном виде - понравится ли это преподавателю.


Если в частном, то можно обойтись 2мя переменными вообще, если же больше, то придеться заводить массив, моя идея такова:

Задаем вектор, состояйщий из стольки же элементов, сколько строк. На месте первого элемента ставим количество отрицательных элементов в первой строке, во втором количество отрицательных элементов во второй строке, и т. д. Ну и длаее по номеру можно легко отследить максимально или нет там количество элементов.

Приведу код:
Code Sample:
 
const
        row=2;
        col=4;
Type
        mas=array [1..rowl, 1..col] of integer;
        vect=array [1..row] of integer;
VAR
      B: mas;
      nOtrVect: vect;
      i, j: byte; {счетчики}
      nOtr: integer;  

{функции и процедуры}
function otrInRow(m: mas; i: byte): byte;
Var j,k:byte;
Begin
    k:=0;
    for j:=1 to col do
     if m[i,j]<0
        then k:=k+1;
    otrInRow:=k;
End;

procedure showRow(m: mas; i: byte);
Begin
   for j:=1 to col do
   write(m[i, j], ' ');
   writeln;
End;

{тело программы}
BEGIN
        {опускаю формирование массива}
        {Вывести массив можно так}
         for i:=1 to col do
          showRow (B, i);
        {исполняем то, о чем я говорил}
         nOtr:=0 {хранит максим. число отрицат. элем. в строке}
         for i:=1 to row do
          begin
            nOtrVect:=otrInRow (B, i);
            if nOtr<=nOtrVect[ i ]
               then nOtr:=nOtrVect[ i ]
          end;
        {теперь выведем соответствующие строки}
        for i:=1 to row do
         if nOtrVect[ i ]=nOtr
           then showRow (B, i);
END.




(Сообщение отредактировал KMA 10 мая 2007 23:47)

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 10 мая 2007 23:38 | IP
KMA



Долгожитель


Народ, если кто-либо разбирается, то помогите пожалуста

дан текстовый файл input.txt, состоящий из слов, разделенных пробелами. В конце предложения стоит точка. Найти самое длинное слово-перевертыш, если таких слов несколько – рассмотреть все. Найденные слова вывести на экран и в файл output.txt.

Заранее спасибо



Приводи код, и то что пытался сделать, и перестань тупо скидывать задачи, их поэтому и игнорируют.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 10 мая 2007 23:50 | IP
ditar


Новичок

KMA, спасибо за помощь!

Всего сообщений: 6 | Присоединился: октябрь 2006 | Отправлено: 10 мая 2007 23:58 | IP
KMA



Долгожитель


Здравствуйте! Подскажите, пожалуйста, как в паскале записать такую формулу:
Exp в степени (-1)/1+ Exp в степени (-1)?



Реально записать можно так:

Code Sample:
 
exp(-1)/(1+exp(-1))



Но реально ребят, вам гонять одну и ту же функцию по одному и тому же месту не очень хорошо, поэтому лучше сделать так:

Code Sample:
 
a:=exp (-1);
{ну а далее запись будет выглядеть так}
a/(a+1)


Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 11 мая 2007 0:20 | IP
KMA



Долгожитель


сть такая прога, часы. Не я ее писала но очень интер как она работает или может кто знает где прочитать об этих модулях поподробней. Прога типа подключает файл какой но он вроде написан как то не по нашому)))
Спасибо!!



А как должны писать еще программы? По русски программ никто не пишет, к сожалениею, все на английсокм =)

Если ты не знаешь что такое ассемблер, то это тебе будет понять очень сложно. Но если есть желание, достань полный модуль и вместе поразбираем.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 11 мая 2007 0:25 | IP
Ridge



Новичок

Вот пример треугольника Паскаля (2мерный массив)
........
a[1,1]:=1;
for i:=1 to 10 do
for j:=1 to i do
     begin
     a[i,j]:=a[i,j-1]+a[i-1,j-1];
     write ( ' ', a[i,j]);
     if (i=j) then
     writeln;
    ......
это я сделал за 10 минут. Ну не могу, ну не могу я сделать так, чтобы одномерные массивыобращаились к предыидущей строчке. Помогите плиззз

Всего сообщений: 19 | Присоединился: май 2007 | Отправлено: 11 мая 2007 0:48 | IP
KMA



Долгожитель

Числа Фибоначчи не подойдут? Вначале тупо заполняешь массив, а потом выбираешь.

Поясни, пожалуйста, свою задачу по конкретнее, что должно быть? Она заключается лишь в том, чтобы показать данный треугольник на экран? Или же занести каким то образом в массив. Если последнее, то тогда объясни по какому принципу и как должны они быть построены, скольки мерная матрица и т. д.  

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 11 мая 2007 0:54 | IP
Ridge



Новичок

ОЙ.я писал просто уже. Но конечно же повторю.

На экран вывести треугольник Паскаля (неважно сколько строчек) Использую оту формулу.а[i,j]=a[i,j-1]+a[i-1,j-1]; где a[i,j] - используемый элемент.
i-номер строки
j- номер столбца или наоборот.
Нужно выполнить 3мя способами:
а)исп 2мерный массив;
б)исп два 1мерных;
в) исп. 1 одномерный;

вывестись должно такое:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
.....

........
a[1,1]:=1;
for i:=1 to 10 do
for j:=1 to i do
    begin
    a[i,j]:=a[i,j-1]+a[i-1,j-1];
    write ( ' ', a[i,j]);
    if (i=j) then
    writeln;
   ......
Это пример двумерного. но остальные не получаются




(Сообщение отредактировал Ridge 11 мая 2007 7:25)


(Сообщение отредактировал Ridge 11 мая 2007 9:24)

Всего сообщений: 19 | Присоединился: май 2007 | Отправлено: 11 мая 2007 7:23 | IP

Эта тема закрыта, новые ответы не принимаются

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ]

Форум работает на скрипте © Ikonboard.com