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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2011, 17:25   #1
Марина 666
 
Аватар для Марина 666
 
Регистрация: 21.03.2011
Сообщений: 4
По умолчанию Типы данных в Делфи

Задание звучит так:Сформировать список строк L1, считав его из файла input.txt. Для каждой строки списка найти значение некоторой характеристики. Занести вычисленное значение в список L2 нетипизированных указателей. Удалить из списка строк элементы, удовлетворяющие некоторому условию. Во вновь получившемся списке L1 сравнить характеристику i-го элемента S со значением i-го элемента списка L2. Если эти значения совпадают, добавить в список строк L3 элемент, состоящий из строки S и ее характеристики. Список L3 сохранить в файле output.txt.

Помогите пожалуйста написать условие.....и тут еще какая-то проблема с функцией характеристики......выдает какие-то непонятные числа

Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  classes;

const znak = '.!?';

var l1: TStringList;
  l2: TList;
  s: string;
  j, n, i, c, d: integer;
  p: ^integer; 

function spis(s: string): integer;
var 
  m, j, i, ns, ks, n: integer; 
  pred, slovo: string;
begin
   //spis:=length(s);
  j := 1;
  while j <= length(s) do
  begin

    while (pos(s[j], znak) <> 0) and (i <= length(s)) do j := j + 1;
    ns := j;
    while (pos(s[j], znak) = 0) and (i <= length(s)) do j := j + 1;
    ks := j;
    pred := copy(s, ns, ks - ns);

    n := 1;
    for i := 1 to length(pred) - 1 do
    begin if (pred[i] <> ' ') and (pred[i + 1] = ' ') then n := n + 1;
      m := 0;
      if n = 2 then m := m + 1; end; writeln(pred, m);
  end;
end;

function usl(x: integer): boolean;
var k, m: integer;
begin
  k := 0;
  for i := 1 to length(s) do
  begin
    for c := 0 to d do
      if m mod c = 0 then k := k + 1;
  end;
  if k = 2 then

    usl := true
  else
    usl := false;
        {   if m mod 1 then }
end;

begin
  l1 := TStringList.Create;
  l1.LoadFromFile('input.txt');
  for i := 0 to l1.Count - 1 do
  begin
    writeln(l1[i]);
  end;
  l2 := Tlist.Create;

  for i := 0 to l1.Count - 1 do
  begin
    new(p); 
    p^ := spis(l1[i]); 
    l2.Add(p);
  end;

  for i := 0 to l2.Count - 1 do
  begin
    p := l2.Items[i];
    write(p^, ' ');
  end;
  writeln;
  readln;


  l1.Free; l2.Free;
end.

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

Последний раз редактировалось Serge_Bliznykov; 21.03.2011 в 21:59.
Марина 666 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
типы данных. svoi92 Помощь студентам 2 10.02.2011 13:45
Типы данных С++ werser Помощь студентам 1 13.03.2010 18:34
Делфи. Суммируем разные типы чисел Дикий Помощь студентам 2 28.06.2008 10:30
Типы данных??? Рустам Общие вопросы Delphi 10 08.11.2007 08:03