Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для HaydoSpeed
7 / 7 / 2
Регистрация: 10.02.2017
Сообщений: 164
Записей в блоге: 1

Изменить программку с динамическим массивом,чтоб пользователь указывал страну, а программа выводит значение

12.06.2017, 19:59. Показов 687. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
изменить программку чтоб пользователь указывал страну, а программа выводит мини тарбличку
место- N
страна - Швейцария
количество золота - 5
кол серебра - 1
кол бронзы - 2
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
const n=8;
type country=record
      name:string[30];
      population:longint;
      square:real;
     end;
var
  a:array[1..n] of country;
  s,r:string;
  i,j:integer;
  f:file of country;
begin
  assign(f,'country.dat');
  if not FileExists('country.dat') or (Uppercase(ReadlnChar('Файл country.dat уже существует! перезаписать (Y/N)?'))='Y') then begin
    Rewrite(f);
    writeln('Введите данные по странам:');
    for i:=1 to n do begin
      writeln('Запись #',i);
      a[i].name:=ReadlnString('Название страны:');      a[i].population:=ReadlnInteger('Население:');
      a[i].square:=ReadlnReal('Занимаемая площадь:');
      write(f,a[i]);
    end;
  end  
  else begin 
    reset(f);
    for i:=1 to 8 do read(f,a[i]);
  end;
  close(f);
    for i:=1 to n-1 do
      for j:=i+1 to n do if a[i].name>a[j].name then Swap(a[i],a[j]);
  writeln('отсортированный список:');
  writeln(format('{0,-40}{1,20}(чел){2,20}(км^2)','Название страны','Население','Занимаемая площадь'));
  for i:=1 to n do writeln(format('{0,-40}{1,20:N}{2,20:F}',a[i].name,a[i].population,a[i].square));
  s:=ReadlnString('Введите название страны:');
  r:='';
  for i:=1 to n do 
    if UpperCase(s)=UpperCase(a[i].name) then r:=r+format('{0,-40}{1,20:N}{2,20:F}',a[i].name,a[i].population,a[i].square)+NewLine;
  if r='' then writeln('Страна "',s,'" не найдена') else writeln(r);
end.
Добавлено через 28 секунд
может как то упростить, чтоб сортировку не удалять
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.06.2017, 19:59
Ответы с готовыми решениями:

Программа работы с одномерным динамическим массивом
Помогите пожалуйста!!! //Реализовать функционал работы с одномерным динамическим массивом. // 1. Создание массива // 2. Заполниние...

Программа выводит 12 символов с клавиатуры. Как сделать чтоб она выводила больше
data segment in_str db ODh, 0Ah, 80, ?, 82 dup (?) out_str db 0Dh,0AH,80,?,82 dup (?),0Dh,0AH’$’ data ends code segment assume...

Изменить вид курсора мыши на экране, чтобы он указывал в сторону, в которую движется мышка
как изменить вид курсора мыши на экране, чтобы он указывал в сторону вкоторую движется мышка? Примерно как на картинке. Я думал, может...

1
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
17.06.2017, 14:43
Не совсем понял задание. Пока сортирует страны по кол-ву золота.

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
type
  country = record
    name: string[30];
    z, s, b: longint;
  end;
 
var
  a: array of country;
  s, r: string;
  n, i, j: integer;
  f: file of country;
 
begin
  assign(f, 'country.dat');
  if not FileExists('country.dat') or (Uppercase(ReadlnChar('Файл country.dat уже существует! Перезаписать (Y/N)?')) = 'Y') then 
  begin
    Rewrite(f);
    write('Введите количество стран: ');
    readln(n);
    SetLength(a, n);
    writeln('Введите данные по странам: ');
    for i := 0 to n - 1 do 
    begin
      writeln('Запись #', i + 1);
      a[i].name := ReadlnString('Название страны: ');
      a[i].z := ReadlnInteger('Введите количество золотых медалей: ');
      a[i].s := ReadlnInteger('Введите количество серебряных медалей: ');
      a[i].b := ReadlnInteger('Введите количество бронзовых медалей: ');
      write(f, a[i]);
    end;
  end  
  else 
  begin
    reset(f);
    i := 0;
    while not eof(f) do 
    begin
      SetLength(a, i + 1);
      read(f, a[i]);
      inc(i);
    end;
  end;
  n := i;
  close(f);
  writeln('Исходный список: ');
  writeln(format('{0,-30} {1,10}', 'Название страны', 'Золото  Серебро  Бронза'));
  for i := 0 to n - 1 do 
    writeln(format('{0,-30}{1,5}{1,8}{1,8}', a[i].name, a[i].z, a[i].s, a[i].b));
  for i := 0 to n - 2 do
    for j := i + 1 to n - 1 do 
      if a[i].z < a[j].z then
        Swap(a[i], a[j]);
  writeln('Отсортированный список: ');
  writeln(format('{0,-30} {1,10}', 'Название страны', 'Золото  Серебро  Бронза'));
  for i := 0 to n - 1 do 
    writeln(format('{0,-30}{1,5}{1,8}{1,8}', a[i].name, a[i].z, a[i].s, a[i].b));
  SetLength(a, 0);
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.06.2017, 14:43
Помогаю со студенческими работами здесь

Пользователь вводит цифру. Программа выводит её представление прописью
В диалоговом окне вводится символ – арабская цифра. В клетку С1 записывается эта цифра словом (например, 1 – один).

Пользователь вводит цифру. Программа выводит её представление прописью
Две задачки, помогите пожалуйста. Заранее спасибо ^_^ 2. Пользователь вводит цифру. Программа выводит на экран её представление...

Пользователь вводит цифру. Программа выводит на экран её представление прописью
Пользователь вводит цифру. Программа выводит на экран её представление прописью. Например, если ввели 7, то ответ = семь.

Пользователь вводит четыре числа. Программа выводит их в порядке возрастания
Пользователь вводит четыре числа. Программа выводит их в порядке возрастания. Запрещено использовать сравнения, условия, циклы, но...

Пользователь вводит с клавиатуры 5 чисел. Программа выводит на экран их среднее арифметическое
Надо использовать циклы. Написпал прогу,в чём может быть ошибка? #include &lt;iostream&gt; using namespace std; int main() ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru