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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2013, 14:15   #1
Victor1995
Пользователь
 
Регистрация: 19.12.2013
Сообщений: 12
По умолчанию Записи в Паскале

на основе таблицы, включающей название планеты, расстояние от Солнца, количество спутников, период обращения, средний радиус, массу, вывести на печать характеристики планет, расположенных в порядке не возрастания количества спутников(массы, радиуса обращения). Написать программу в Паскале с помощью процедур и записей . особенно не могу понять выделенную часть . ПОЖАЛУЙСТА, ПОМОГИТЕ, БУДУ ОЧЕНЬ ПРИЗНАТЕЛЕН.
Victor1995 вне форума Ответить с цитированием
Старый 20.12.2013, 15:01   #2
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Есть база, в которой лежат несколько полей данных, среди которых есть число спутников этой планеты, её масса, радиус обращения и т.п.
Сортируете базу, выводите все по очереди.
Хотите код - покажите, как будете заполнять массив.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 20.12.2013, 16:24   #3
Victor1995
Пользователь
 
Регистрация: 19.12.2013
Сообщений: 12
По умолчанию

Код:
TYPE MAS=array[1..100] of integer;
TYPE STROKA=record
            planeta: array[1..9] of char;
            svedenya:record
                     rastsun, kolsput,perobra,sredrad,massa: integer
                     end;
            end;
     VED=array[1..100] of STROKA;
var V: VED;
    i,j,N: integer;
    procedure VVOD(var V1:VED; N1:integer);
     var i,j:integer;
begin
     for i:=1 to N do
      begin
          writeln('введи планету=');
          for j:=1 to 10 do
            readln(V[i].planeta[j]);
            write('введи расстояние от солнца=');
            readln(V[i].svedenya.rastsun);
            write('введи кол-во спутников=');
            readln(V[i].svedenya.kolsput);
            write('введи период обращения=');
            readln(V[i].svedenya.perobra);
            write('введи средний радиус=');
            readln(V[i].svedenya.sredrad);
            write('введи массу=');
            readln(V[i].svedenya.massa);
     end;
end;
procedure VIVOD(V1:VED;N1:integer);
var i,j:integer;
  begin writeln('       ');
 writeln('/       /сведения/     /');
 writeln('/колличество спутников/');
 writeln('      ');
  end;
Вот, я так начал делать
Victor1995 вне форума Ответить с цитированием
Старый 20.12.2013, 16:40   #4
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Какие ошибки вывел компилятор? Этот код вообще компилировался?

Код:
          for j:=1 to 10 do
            readln(V[i].planeta[j]);
Где Begin ... End? Он у тебя 10 раз запросит ввод данных, остальной цикл отработает 1 раз.

Дальше сортируешь все введенное по нужному параметру.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 20.12.2013, 16:51   #5
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Код:
 svedenya:record
                     rastsun, kolsput,perobra,sredrad,massa: integer
              end;
А зачем такая сложная конструкция - запись в записи?
А параметры - наоборот , в одну кучу свалены.
Количество спутников, например - целое число, максимум порядка 60 (у Юпитера).
Остальные параметры - в каких единицах измерения ?
Расст. от Солнца - в км , или в млн км, или в атрономических единицах?
Период - в годах, или днях?
Сред. радиус - в метрах, километрах, в радиусах Земли ?

Код:
VED=array[1..100] of STROKA;
Откуда столько планет? Их всего 8 (было 9). Или имеются ввиду и экзопланеты (у других звезд), но там никаких спутников планет открыть пока невозможно.
Но, вроде не экзопланеты, сказано расстояние от Солнца

Кстати, выделенную часть я тоже не могу понять.

Вот, ввод так. А дальше, как выводить - уточняйте
Код:
type tPlanet=record
 name:string[16]; // название
 a:Real; // расст. от Солнца, а.е.
 kolSput:Byte; // колич. спутников
 p,r,m:Real; // период (год), ср.радиус (в рад. Земли), масса (в массах Земли)
end;
 arPlanets=array[1..8]of tPlanet;  // в Солнечной системе 8 планет, Плутон исключен

procedure Vvod(var plan:arPlanets);
var i:Byte;
begin
 for i:=1 to 8 do
  begin
   Writeln('название планеты');
   Readln(plan[i].name);
   Writeln('количество спутников');
   Readln(plan[i].kolsput);
   Writeln('период, лет');
   Readln(plan[i].p);
   Writeln('ср. радиус в радиусах Земли');
   Readln(plan[i].r);
   Writeln('ср. масса в массах Земли');
   Readln(plan[i].r);
  end;
end;
    //  сама программа :
var PlanSS:arPlanets;
begin
 Vvod(PlanSS);   // ввод данных
// что дальше - разбирайтесь сами
end.

Последний раз редактировалось Stilet; 20.12.2013 в 23:12.
type_Oleg вне форума Ответить с цитированием
Старый 21.12.2013, 00:06   #6
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Ребят, у вас самих-то глаза не вытекают от таких niangliyskihnirusskihnazvaniy?
Son Of Pain вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записи в паскале Maserati Помощь студентам 1 04.11.2013 19:34
записи в паскале swedalena Помощь студентам 9 25.05.2010 20:36
Записи на паскале koten_ok Помощь студентам 3 26.11.2009 16:19
ЗАПИСИ на паскале Fornarina Помощь студентам 6 16.02.2009 19:17