0 / 0 / 0
Регистрация: 21.03.2011
Сообщений: 10
1

Задание по типам данных. Списки..нужно выполнить характеристику и условие

21.03.2011, 17:47. Показов 758. Ответов 1
Метки нет (Все метки)

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

Характеристика: количество предложений, состоящих из двух слов
Условие: среди трехзначных чисел, начинающихся на характеристику строки, есть хотя бы одно простое число

Вот наработка, но тут проблема с характеристикой.....и помогите пожалуйста составить условие
Delphi
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
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils,
  classes;
 
var l1:TStringList;
     l2:TList;
     s:string;
     j,n,i,c,d:integer;
     p:^integer;       const znak='.!?';
 
       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);
 
      {  pred:=pred+''; }
 
   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.
 Комментарий модератора 
Код должен быть оформлен соответствующими тегами. - Это требование правил форума. Например, для оформления кода Delphi следует выделить этот код и на панели редактирования сообщения нажать кнопку "DELPHI".
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Блог
21.03.2011, 17:47
Ответы с готовыми решениями:

Не могу понять условие, следовательно, и выполнить задание
Дана следующая задача: Даны целое число k (1&lt;=k&lt;=180 ) и последовательность цифр...

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

Нужно выполнить задание
Правила форума, пункт 4.3. Создавайте темы с осмысленными и понятными названиями - это серьезно...

Нужно выполнить задание по access
Помогите!!!Очень надо сделать ИНДЗ.Варианты 10,14 и 18. Не обязательно все хоть что-нибудь. Буду...

1
2 / 2 / 1
Регистрация: 16.03.2011
Сообщений: 6
21.03.2011, 18:12 2
Delphi
1
2
3
4
5
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);
Здесь ошибка в переменной (i) надо так:

Delphi
1
2
3
4
5
while (pos(s[j],znak)>0) and (j<=length(s)) do j:=j+1; [I] //и никаких "<>" конкретно больше (pos(s[j],znak)>0)[/I]
   ns:=j;
   while (pos(s[j],znak)=0) and (j<=length(s)) do j:=j+1;
   ks:=j;
   pred:=copy(s,ns,ks-ns);
1
21.03.2011, 18:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Блог
21.03.2011, 18:12
Помогаю со студенческими работами здесь

Задание которое нужно выполнить
В proteus 7.7 нужно выполнить следующую задачу:Подключить к микроконтроллеру 2 цифровых...

Что за задание нужно выполнить (5138 -> DE)?
Здравствуйте! Простите за явную ошибку форумом, но преподаватель выдал задание и не может...

Нужно выполнить задание по Компьютерным Сетям
Всем доброго времени суток. Скоро сессия, и мне предстоит сдача экзамена в виде защиты проекта....

Подскажите что делаю не так. Нужно выполнить задание в FoxPro 2.6, выдаёт ошибку
Имеется два файла D:GROUP и D: STUDY необходимо установить связь между ними и создать файл D:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru