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

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

02.05.2010, 22:52. Показов 1198. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
переделать програму чтобы она находила количество записей которые имеют одинаковие поля и виводила их.

програма
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
uses crt;
 
 
Type Zapis = record
       Field1: real;
       Field2: real;
     End;
var
     mZapis: array[1..8] of ^Zapis;
     VarZapis: ^Zapis;
     F: file of Zapis;
     NameFile: string[8];
     sum: real;
     Range, i, Kol: integer;
 
begin
     Range:=20000;
     ClrScr;
     WriteLn;
     Write(' iмя файлa (до 8 ): ');
     ReadLn(NameFile);
     if Length(NameFile) = 0 then halt;
     assign(F, NameFile+'.TXT');
     rewrite(F);
     Randomize;
     for i := 1 to 8 do
     begin
        VarZapis^.Field1:= (Random(Range) - Range/2)/100;
        VarZapis^.Field2:= (Random(Range) - Range/2)/100;
        write(F,VarZapis^);
     end;
     Close(F);
     WriteLn;
     WriteLn('.');
     readkey;
     ClrScr;
     WriteLn;
     WriteLn(' файлу :');
     WriteLn;
     assign(F, NameFile+'.TXT');
     Reset(F);
     for i := 1 to 8 do
     begin
         New( mZapis[i] );
         Read(F, mZapis[i]^);
         WriteLn('m[',i:1,'].Field1= ',mzapis[i]^.Field1:7:2,'  m[',i:1,'].Field2= ',mZapis[i]^.Field2:7:2 );
     end;
     Close(F);
     WriteLn;
     WriteLn(':');
     WriteLn;
     Kol:=0;
     for i := 1 to 8 do
        if (mZapis[i]^.Field1 < 0) and (mZapis[i]^.Field2 < 0) then
        begin
          Kol:=Kol+1;
          sum:=mZapis[i]^.Field1+mZapis[i]^.Field2;
          WriteLn('m[',i:1,'].Field1= ',mzapis[i]^.Field1:7:2,
          '  m[',i:2,'].Field2= ',mZapis[i]^.Field2:7:2,'  Сума= ',sum:8:2 );
        end;
     if Kol = 0 then WriteLn('');
 
     for i := 1 to 8 do  Dispose(mZapis[i]);
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2010, 22:52
Ответы с готовыми решениями:

Найти количиство записей, которые имеют одинаковые поля и вывести их.
Найти количиство записей что имеют одинаковие поля и вивести их.

Изменить программу, чтобы она выводила только количество слов?
#include &lt;stdio.h&gt; int main() { char ch, flag=-1; unsigned c=0, n=0, w=0; while ((ch =...

Задача страуструпа: Измените программу так, чтобы она выводила числа, которые почти равны друг другу
Есть программа #include &lt;iostream&gt; using namespace std; int main () { double val_1 =...

Как изменить программу , чтобы она находила потомков?
Она находит предков женского пола. Много ли нужно менять и где? domains S=symbol predicates...

4
Студент
498 / 344 / 162
Регистрация: 15.03.2010
Сообщений: 601
03.05.2010, 07:42 2
Вопрос, поля все равны или только какие-то отдельные?
Если вдруг в массиве записей имеются к примеру 20 элементов, из которых только 10 эл-ов разных. Т.е. каждый элемент имеет свою собственную пару.
И их что, выводить все 10.
Или же пользователь вводит поле и все записи сравниваются по введенному полю?
0
0 / 0 / 0
Регистрация: 02.05.2010
Сообщений: 24
03.05.2010, 19:28  [ТС] 3
без разници сам водить или нет и сколько их, главное чтобы виполнялось действия: програма находила одинаковие и виводила их как пример она виводит, ток не находит одинаковие и не выводит их.
0
Студент
498 / 344 / 162
Регистрация: 15.03.2010
Сообщений: 601
03.05.2010, 19:45 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

вот тебе пример с одномерный массивом, изменить тебе надо: только поля добавить для сравнения, и кол-во проходов цикла. от 1 до кол-ва записей.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 for i:=1 to n do//от 1, до размерности массива
  begin
    pr:=false;//признак для проверки, не проверяли ли мы элемент a[i] ранее
    for j:=1 to i-1 do
    if a[i]=a[j] then begin
                        pr:=true;
                        break;
                      end;
    if pr then continue;//если мы проверяли элемент ранее, то пропускаем остальную часть цикла
    kol:=1;//количеству присваиваем 1. переменная хар-щая какое кол-во раз элемент a[i] встреч. в массиве
    for j:=i+1 to n do
    if a[i]=a[j] then inc(kol);
    if kol>1 then writeln('Элемент ',a[i],' повторяется ',kol,' раз');//если элемент не 1 раз встречается в массиве, то выводим
  end;
0
0 / 0 / 0
Регистрация: 02.05.2010
Сообщений: 24
03.05.2010, 20:17  [ТС] 5
извеняюсь
а могбы всю прогу скинутЬ)
прост вибивает ошыбку при запуске и при компиляцие оказуетса она не одна
0
03.05.2010, 20:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2010, 20:17
Помогаю со студенческими работами здесь

Cоставить программу чтобы она выводила картинку:
Cоставить программу чтобы она выводила картинку: * ** *** **** Кол-во строк определяется...

Составить программу чтобы она выводила картинку
Составить программу чтобы она выводила картинку: ////// \\\\\\ ////// \\\\\\ Колво строк и...

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

Изменить программу, чтобы она выводила ряд нечётных случайных чисел от 1 до +k
так, чтобы выводила ряд нечётных случайных чисел от 1 до +k program pr_4; var k,i:integer;...


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

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

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