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

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

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 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 ]
Модераторы: paradise, KMA
  

KMA



Долгожитель

gogo, ты зачем сообщения дублируешь? Думаешь никто не видит? Все прекрасно видят. Но решать тебе никто не будет. Лентяям здесь не решают.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 13 дек. 2007 14:51 | IP
KMA



Долгожитель


Найти в строке все слова, состоящие из трех букв, в которых первая и третья согласная буква, а вторая гласная.


Внимательно читаем задание. Найти в строке. Значит дана строка. Массива строк здесь не надо.

Code Sample:
 
const
  consonants= set of ('b', 'c', 'd', 'f, 'g', 'h', 'k', 'l', 'm', 'n', 'p',
                                    's', 't', 'v', 'x','w', 'z');
   vocalic=set of ('a', 'e', 'i', 'j', 'o', 'q', 'r', 'u', 'y');

var s: string;

BEGIN
     write ('Enter text ->');
     readLn (s);
     s:=s+' '; {добавляем пробел в конец}
     while pos(' ', s)=1 do {удаляем пробелы справа}
       delete(s, 1, 1);
     {теперь точно известно, что строка начинается
       не с пробела, а с символа}
     while length(s)>2 do
        begin
         {удаляем все слова, пока не встретиться такое слово,
          где 3 символа}
         while (pos(' ', s)<>4) and (length(s)>2) do
           delete (s, 1, pos(' ', s));
         {теперь либо будет удалена вся строка, либо 1 символ
           начало 3х буквенного слова}
          if length(s)>=4
             then
              begin
               if (s[1] in consonants) and (s[3] in consonants)
                          and (s[2] in vocalic)
                         then writeLn (s[1], s[2], s[3]);
               delete (s, 1, 4);               
              end;  
        end;
       readLn;
END.



Должно получиться что-то вроде этого. У меня нет полной уверенности за BP что он правильно воспримет строчку с множествами в виде констант. Но если что, я думаю, суть понятно, заменишь. В остальном программа рабочая.


(Сообщение отредактировал KMA 14 дек. 2007 22:20)

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 13 дек. 2007 15:21 | IP
Shaker



Новичок

Пасибо за помощь!!!

Всего сообщений: 3 | Присоединился: декабрь 2007 | Отправлено: 14 дек. 2007 0:05 | IP
KMA



Долгожитель


2)Организовать типизированный файл, содержащий сведения об адресах и телефонах сотруд-ников предприятия: ФИО, адрес (улица, дом, квартира). Напишите встроенную подпрограмму-функцию для организации безопасного ввода номеров телефонов – целое шестизначное число. Определите сколько сотрудников живет на улице Орликовой.


Поброди по этой теме, похожие задачи уже встречались, там целые выкладки даны. Тебе лишь немного переделать запись и преобразовать код.


1) С помощью текстового редактора создать файл, содержащий текст, длина кото¬рого не пре-вышает 1000 символов (длина строки текста не должна превышать 70 символов).
Имя файла должно иметь расширение DAT. Написать программу, которая:
-выводит текст на экран дисплея;
-определяет сколько раз в тексте встречается слово «змея».



Так, слово "змея" можно определить будет с помощью функции pos. Если возникнут вопросы спрашивай, только код выложи, чтобы не с нуля все писать. Сам алгоритм чтения примерно таков:

var f: text;
     _bufString: string[71];
     j: byte;
BEGIN
       assign (f, 'text.dat'); {связываем файл с файл. перемен.}
       reSet (f);  {открываем для чтения}
       i:=1;
       while not eof(f) do  
        begin
          readLn (f, _bufString); {считываем строчку}
          writeLn (_bufString); {показываем строчку на экране}
          i:=i+1;
          if i>21
            then
             begin
              writeLn;
              writeLn;
              writeLn ('Для продолжения просмотра нажмите Enter');
              readLn;
             end;
        end;
      close (f); {закроем файл}
      readLn;
END.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 14 дек. 2007 22:33 | IP
Guest



Новичок

как выразить arcctg в паскале, так чтобы оно не боялось промежуточных отрицательных значений. пример:
f:=-pi+arctan(sqrt(1-sqr(abs(x-a)))/abs(x-a))/arctan(abs(x-a)/sqrt(1-sqr(abs(x-a))))

Всего сообщений: Нет | Присоединился: Never | Отправлено: 15 дек. 2007 16:03 | IP
DeNyA



Новичок

помогите пожалуста решить задачу, заранее спасибо!!!!
задача: слажить програму по нахождению значения функции
Y=Cos(1)Cos(2)Cos(3)...Cos(n) если n=10

Всего сообщений: 1 | Присоединился: декабрь 2007 | Отправлено: 16 дек. 2007 13:20 | IP
AlDromS



Новичок

Привет всем!
Нужно не решение задачи, а сам алгоритм, т.к. пишу на Си.
Так вот, как найти максимальное расстояние между точками плоскости. Число точек заранее не известно. Тупой перебор, имхо, слишком извращенная идея, может есть какой математический алгоритм?
Спасибо заранее!

Всего сообщений: 7 | Присоединился: ноябрь 2007 | Отправлено: 16 дек. 2007 13:50 | IP
KMA



Долгожитель

Ну во-первых, перебор это не извращенная идея, а самое простоя идея реализации, и то что он есть уже говорит, что задачу можно решить, тем более порой он является единственным. Ну а во вторых надо точно знать где рассматривать задачу. Если скажем у тебя ВСЕ точки лежат в одной из четвертей ( но только в одной из них, т. е. либо в 1, либо во второй, либо в третьей, либо в четвертой ), то задача решается 2 проходами за цикл (если постараться, то можно вообще одним) по всем точкам. Если нет, то только перебор по вполне понятным причинам. Естественно я не беру в рассмотрению задачу, когда точки лежат в противоположных четвертях (скажем в 1 и третьей). Потому что такое, как правило бывает очень редко.

Если же нам заранее это не известно, то можно увеличить вычисления самой задачи. Скажем, вначале установить факт в каких четвертях лежат точки (т. е. один раз пройтись по ним), а затем уже выбрать подходящий алгоритм. Для одной или двух четвртей (при этом без разницы как расположенных) все решается за два прохода цикла по всем точкам. В любом другом случае, скорей всего придется решать перебором.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 16 дек. 2007 15:43 | IP
VERGILE



Новичок

Привет всем! Люди помогите решить задачу на паскале! ВОТ она:
Дано натуральное число n. Выяснить можно ли представить n в виде произведения 3 последовательных натуральных чисел.

Всего сообщений: 11 | Присоединился: декабрь 2007 | Отправлено: 16 дек. 2007 17:38 | IP
VERGILE



Новичок

Спасите меня! Мне на завтра надо!

Всего сообщений: 11 | Присоединился: декабрь 2007 | Отправлено: 16 дек. 2007 17:48 | 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 ]

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