Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2013, 15:30   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

s-andriano, Вы все правильно говорите. я, наверное, не очень внятно выразился. Чтобы полученный алгоритм (уже записанный либо по русски, либо в виде блок-схем, либо в любом другом виде) записать на нужном языке программирования (а ведь получить программу на заданном языке программирования, в данном случае на языке Паскаль - и является финальной сверхзадачей), вот тут уж без знания нужного языка программирования не обойтись!




p.s. кстати, данная задача является немного не типичной в том смысле, что даже для того, чтобы разработать и записать алгоритм в виде пошаговых действий (по русски) всё равно потребуется знание языка Паскаль - чтобы знать, как отличить операторы присваивания от других конструкций/операторов языка и как разделить три программы друг от друга.. Но это, конечно, исключительная особенность данной задачи.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.03.2013, 15:53   #12
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Не совсем так.
1. Есть текстовый файл на определенном языке, который нужно анализировать. А для анализа - иметь некоторые представления о языке, на котором он написан.
2. Нужно записать алгоритм программы на конкретном ЯП.

Так вот, тот факт, что язык из первого пункта совпал с ЯП из второго - лишь частный случай.
Собственно, от первого языка требуется довольно немного знаний:
- как выглядит оператор присваивания,
- как отделить один анализируемый фрагмент (называемый в условии задачи программой) от другого.
А вот второй язык нужно знать в объеме, позволяющем решить задачу.

Но для первоначального наброска алгоритма по-русски достаточно только знания (первого) языка в указанном очень ограниченном объеме.
s-andriano вне форума Ответить с цитированием
Старый 28.03.2013, 11:24   #13
SWAGG
 
Регистрация: 14.03.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
проболел весь семестр - берешь академотпуск.
протестите плиз прогу)!!я написал, оказалось что тема файлы и строки не такая уж и сложная)буду благодарен....
Код:
function CR(substr, str: string): integer;
var
  cnt, p: integer;
begin
  cnt := 0;
  while str <> '' do
  begin
    p := Pos(substr, str);
    if p > 0 then
      inc(cnt)
    else
      p := 1;
    Delete(str, 1, (p + Length(substr) - 1));
  end;
  CR := cnt;
end;
//объявляем переменные
var
str1, prog1, prog2, prog3 :string;
i, a1, a2, a3:integer;
input, output : Text;

begin
// открываем файлы
assign(input,'input.txt');
assign(output,'output.txt');
reset(input);
rewrite(output);

// читаем данные
while not eof(input) do
      begin
           readln(input, str1);
           prog3:=prog3 + str1 + ' ' ;
      end;

//разделяем всю программу на 3 (1-я_prog1; 2-я_prog2; 3-я_prog3)
prog1 := copy(prog3, 0, pos('end.', prog3) + 3);
delete(prog3, 1, pos('end.', prog3) + 3);
prog2 := copy(prog3, 0, pos('end.', prog3)+ 3);
delete(prog3, 1, pos('end.', prog3) + 3);
// конец

//считаем кол-во присваиваний
a1 := CR(':=', prog1);
a2 := CR(':=', prog2);
a3 := CR(':=', prog3);

//сравниваем и выводим
if (a1 >= a2)and(a1 >= a3) then
  writeln(output, prog1);
if (a2 >= a1)and(a2 >= a3) then
  writeln(output, prog2);
if (a3 >= a2)and(a3 >= a1) then
  writeln(output, prog3);

//закрываем файлы
close(input);
close(output);
end.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 28.03.2013 в 11:52.
SWAGG вне форума Ответить с цитированием
Старый 28.03.2013, 11:55   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну, что там тестить то.
проверьте, например, на таких программах:
Код:
VAR I:INTEGER;
BEGIN
  I:=2;
  I := 2 + I;
END.
и на такой:
Код:
Var I,J : integer;
Begin  
  WriteLn(' для присвоения используем оператор := (именно :=)');
End.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.03.2013, 05:02   #15
SWAGG
 
Регистрация: 14.03.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ну, что там тестить то.
проверьте, например, на таких программах:
Код:
VAR I:INTEGER;
BEGIN
  I:=2;
  I := 2 + I;
END.
и на такой:
Код:
Var I,J : integer;
Begin  
  WriteLn(' для присвоения используем оператор := (именно :=)');
End.
это я тестил, я просто прошу шарющих людей протестить, проверить сам код и т.д
SWAGG вне форума Ответить с цитированием
Старый 29.03.2013, 08:43   #16
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,342
По умолчанию

Если бы тестировали, то заметили бы, что во второй программе вместо 0 присваиваний выдаёт два (саму программу не запускал, но предполагаю).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 29.03.2013, 08:58   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

BDA, +1


SWAGG,
а ещё, еcли бы тестили, то заметили, что данные мною примеры программы ВООБЩЕ не разделяются на отдельные!

Далее. Удалять символы строки, для того, чтобы проверить и подсчитать совпадение подстроки в строке - это крайне неэффективно! Ну, это всё равно, как если бы вам поручили посчитать, сколько книг Александра Дюма есть в библиотеке, а вы брали книжку и ВЫНОСИЛИ на улицу. Если это книга Дюма, делали себе пометку в блокноте, если нет - то пометку не делали. И продолжали бы пока внутри библиотеки не осталось НИ ОДНОЙ книжки. Согласитесь, что это не очень эффективно?!
Но именно так Вы и поступаете с символами строки!


Далее, какой у Вас Паскаль? Если TurboPascal - то в нём ограничение на длину строки - переменная типа string не может быть длинее 255 символов. А Вы пытаетесь все три программы в одну строчку собрать.
Вставьте свою программу в файл input.txt в качестве одной из 3-х программ (последней, желательно ). думаю, что Вы будете неприятно удивлены...


Автор, если Вы не видите и, главное, НЕ ХОТИТЕ видеть косяков в вашем коде, то зачем писать просьбу о тестировании?!

Последний раз редактировалось Serge_Bliznykov; 29.03.2013 в 09:05.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Числовая последовательность задана рекуррентной формулой: Витя007 Помощь студентам 6 31.10.2012 18:09
Задача на тему файлы и строки lokomotiv1992 Visual C++ 0 13.06.2012 17:02
задача на строки.Задана последовательность слов.. votek Помощь студентам 5 09.11.2011 23:48
создать тему в турбо-паскале на тему типизированные файлы O!e&ka! Паскаль, Turbo Pascal, PascalABC.NET 0 29.05.2011 11:42
Задана последовательность состоящая из единиц и нулей valiaam55 Паскаль, Turbo Pascal, PascalABC.NET 1 29.09.2010 17:16