Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
2 / 1 / 1
Регистрация: 12.10.2016
Сообщений: 102

Динамические массивы

05.03.2017, 15:37. Показов 788. Ответов 1
Метки нет (Все метки)

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

Помогите пожалуйста организовать, не могу сообразить. Видимо, в этом куске кода тоже что-то не так.
Буду благодарен.

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
program lab1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils,
  Windows;
 
type N = array of integer;
     D = array of array [0..2] of integer;
 
procedure Change(var a:N; b:D);
var k, n, i, j, gold, silver, bronze: integer;
    s: string;
begin
  SetConsoleOutputCP(1251);
  write('Введите количество стран_');
  readln(n);
   SetLength(a, n);
   SetLength(b, n);
    writeln('Введите названия стран и кол-во медалей(золото, серебро, бронза)_');
     for k:=0 to n do
      read(s);
        for i:=0 to n do
         begin
           for j:=0 to 2 do
            begin
              read(gold, silver, bronze);
            end;
             writeln;
         end;
   
end;
 
  //m a i n
var aa: N;
    bb:D;
begin
   Change(aa,bb);
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.03.2017, 15:37
Ответы с готовыми решениями:

Статические массивы,Динамические массивы,строки
1)Создать двумерный массив A(N,M) целых положительных и отрицательных чисел с помощью функции Random. Найти произведение всех четных...

динамические массивы
помогите пожалуйста с заданием по динамическим массивам: Разработать программу, которая создает список L, элементами которого является...

Динамические массивы?
Составить код программы, которая выполняет следующие действия: 1. Формирование двумерного целочисленного массива (матрицы) размером N х...

1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
05.03.2017, 17:22
Создать массивы так.
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
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils,
  Windows;
type St = array of string;
     Md = array of array [1..3] of integer;
procedure Change(var a:St; var b:Md; var n:integer);
var j, gold, silver, bronze: integer;
    s: string;
begin
n:=0;
writeln('Введите названия стран, можно с повторениями, конец ввода пустая строка');
repeat
write('Введите название страны: ');
readln(s);
if s<>'0' then
 begin
  writeln('Введите кол-во медалей(золото, серебро, бронза)');
  readln(gold,silver,bronze);
  if n=0 then
   begin
    inc(n);
    SetLength(a,n);
    SetLength(b,n);
    a[n-1]:=s;
    b[n-1,1]:=gold;
    b[n-1,2]:=silver;
    b[n-1,3]:=bronze;
   end
  else
   begin
    j:=0;
    while (j<n)and(a[j]<>s) do inc(j);
    if j=n then
     begin
      inc(n);
      SetLength(a,n);
      SetLength(b,n);
      a[n-1]:=s;
      b[n-1,1]:=gold;
      b[n-1,2]:=silver;
      b[n-1,3]:=bronze;
     end
    else
     begin
      inc(b[j,1],gold);
      inc(b[j,2],silver);
      inc(b[j,3],bronze);
     end;
    end;
  end;
until s='0';
end;
 
  //m a i n
var aa: St;
    bb: Md;
    n,i:integer;
begin
  SetConsoleCP(1251);
  SetConsoleOutPutCp(1251);
  Change(aa,bb,n);
  for i:=0 to n-1 do
  writeln(aa[i],' ',bb[i,1],' ',bb[i,2],' ',bb[i,3]);
  readln
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.03.2017, 17:22
Помогаю со студенческими работами здесь

Динамические массивы
Дан одномерный массив Xn. Найти количество элементов массива, значение которых больше 5. Напечатать номера всех элементов массива, значение...

Динамические массивы
Всем привет) очень нужна помощь. Есть программа для заполнения динамического массива A случайным образом. но размер в массиве нужно...

Динамические массивы
Здравствуйте! Недавно решил попробовать покодить на Delphi Prism... и возникла проблема... В дельфи win32 есть замечательная вещь:...

Динамические массивы
1. Заданы два одномерных массива случайных целых чисел(размеры определяет пользователь). Сформировать Новый массив по правилу:если сумма...

Динамические массивы
Вчера на практике в колледже мы разбирали динамические массивы. Когда я узнала тему, то подумала: что тут сложного, A: array of...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru