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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2016, 13:12   #1
юля123321
Пользователь
 
Регистрация: 28.11.2016
Сообщений: 15
По умолчанию Почему не получается преобразовать тип к array[1..6] of string к array[1..6] of string?

(В самом конце)
На всякий случай задание: Разработать диалоговую программную систему, позволяющую оценить время выполнения различных алгоритмов упорядочения числовых массивов. Алгоритмы сортировки оформить в виде подпрограмм.

Код:
program sravnenie;

const
  Nmax = 100000;
  Np = 10;
  Smax = 6;
  masstr: array[1..smax] of string = ('input', 'bubble', 'insert', 'choice', 'output', 'exit');

type
  Tvector = array[1..Nmax] of word;
  Tstring = array[1..Smax] of string;
  Tindex = 1..Nmax;


function menu(s: TString; ns: word): word;
var
  i: word;
  k: word;
begin
  for i := 1 to ns do
    writeln(s[i]);
  writeln('Введите номер пункта');
  readln(k);
  result := k;
end;







procedure input(var a: Tvector; n: word);
var
  na, i: word;
  c, d, e: Tvector;
begin
  randomize;
  writeln('Введите количество элементов массива');
  readln(na);
  for i := 1 to na do
    a[i] := random(10000);
  writeln('unsort.arr.');
  for i := 1 to Np do
    write(a[i]:8);
  writeln;
  c[i] := a[i];
  d[i] := a[i];
  e[i] := a[i];
end;


procedure bubble(var c: Tvector; n: word);
var
  z: Tvector;
  k: integer;
  flag: boolean;
  i, b: word;
  t1, t2, time_bubble: real;
begin
  t1 := Milliseconds;
  flag := false;
  for k := 1 to n - 1 do
    if c[k] > c[k + 1] then
      b := c[k + 1];
  c[k + 1] := c[k];
  c[k] := b;
  flag := true;
  N := N - 1;
  t2 := Milliseconds;
  time_bubble := t2 - t1;
  writeln('После сортировки пузырьком: ');
  for i := 1 to N do
    write(c[i], ' ');
  writeln; 
  z[i] := c[i];
end;



procedure insert(var d: Tvector; n: word);
var
  i, R, k: word;
  z: Tvector;
  na: word;
  t3, t4, time_insert: real;
begin
  t3 := Milliseconds;
  for i := 2 to na do
    if d[i - 1] > d[i] then
    begin
      R := d[i];
      k := k - 1;
      while (k > 0) and (d[k] > R) do
      begin
        d[k + 1] := d[k];
        k := k - 1;
      end;
      d[k + 1] := R;
      t4 := Milliseconds;
      time_insert := t4 - t3;
    end;
  writeln('После сортировки вставками: ');
  for i := 1 to N do
    write(d[i], ' ');
  writeln; 
  z[i] := d[i];
end;



procedure choice(var e: Tvector; n: word);
var
  k, j, index: word;
  min, i: word;
  z: Tvector;
  t5, t6, time_choice: real;
begin
  t5 := Milliseconds;
  for k := 1 to n - 1 do
  begin
    min := e[k];
    index := k;
    for j := k + 1 to n do
      if e[j] < min then
      begin
        min := e[j];
        index := j;
      end;
    e[index] := e[k];
    e[k] := min;
    t6 := Milliseconds;
    time_choice := t6 - t5;
  end;
  writeln('После сортировки выбором: ');
  for i := 1 to N do
    write(e[i], ' ');
  writeln; 
  z[i] := e[i];
end;


procedure output(var a, z: Tvector; Table: word);
var
  na, i: word;
  time_choice, time_insert, time_bubble: real;
begin
  writeln('unsort_arr:');
  for i := 1 to Np do
    write(a[i]:8);
  writeln;
  
  
  
  
  case Table of
    1: 
      begin
        writeln(masstr[2]);
        writeln('Время выполнения ', time_bubble, ' ms');
      end;
    2: 
      begin
        writeln(masstr[3]);
        writeln('Время выполнения ', time_insert, ' ms');
      end;
    3: 
      begin
        writeln(masstr[4]);
        writeln('Время выполнения ', time_choice, ' ms');
      end;
    5: 
      begin
        writeln('Тип сортировки', '  ', 'Время работы');
        writeln(masstr[2], '       ', (time_bubble):10,  'ms');
        writeln(masstr[3], '       ', (time_insert):10,  'ms');
        writeln(masstr[4], '       ', (time_choice):10,  'ms');
      end;
  end;
  
  begin
    write('sort_arr:');
    for i := 1 to Np do
      write(z[i]:8);
    writeln;
  end; 
end;




var
  k, i: word;

begin
  
  repeat
    k := menu(masstr, Smax);
    case k of
      1: input(a, n);
      2: bubble(c, n);
      3: insert(d, n);
      4: choice(e, n);
      5: output;
    end;
  until k = Smax;
  
end.
юля123321 вне форума Ответить с цитированием
Старый 01.12.2016, 13:22   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
masstr: array[1..smax] of string = ('input', 'bubble', 'insert', 'choice', 'output', 'exit');
...
function menu(s: TString; ns: word): word;
...
k := menu(masstr, Smax);
array[1..smax] of string совсем не TString
Так попробуй
Код:
k := menu(TString(masstr), Smax);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.12.2016, 13:35   #3
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

аа.... мысли вслух...
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 01.12.2016, 13:36   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Tstring =array[1..Smax] of string;

const
masstr: array[1..Smax] of string Tstring = ('input', 'bubble', 'insert', 'choice', 'output', 'exit');
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 01.12.2016 в 13:39.
evg_m на форуме Ответить с цитированием
Старый 01.12.2016, 14:47   #5
юля123321
Пользователь
 
Регистрация: 28.11.2016
Сообщений: 15
По умолчанию

Пишет: Неизвестное имя Tstring
юля123321 вне форума Ответить с цитированием
Старый 01.12.2016, 14:48   #6
юля123321
Пользователь
 
Регистрация: 28.11.2016
Сообщений: 15
По умолчанию

Program1.pas(199) : Невозможно явно преобразовать тип array [1..6] of string к типу array [1..6] of string
юля123321 вне форума Ответить с цитированием
Старый 01.12.2016, 14:48   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Поставь вперед инструкцию с описанием типа
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.12.2016, 14:51   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от юля123321 Посмотреть сообщение
Program1.pas(199) : Невозможно явно преобразовать тип array [1..6] of string к типу array [1..6] of string
Юля, а почему Вы проигнорировали пост #4 ?!

evg_m предложил простое и корректное исправление вашей проблемы.

Код:
const
  Nmax = 100000;
  Np = 10;
  Smax = 6;

type
  TVector = array[1..Nmax] of word;
  TString = array[1..Smax] of string;
  TIndex = 1..Nmax;

const
  masstr: TString = ('input', 'bubble', 'insert', 'choice', 'output', 'exit');

Последний раз редактировалось Serge_Bliznykov; 01.12.2016 в 15:02.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.12.2016, 15:02   #9
юля123321
Пользователь
 
Регистрация: 28.11.2016
Сообщений: 15
По умолчанию

попробовала так сделать. после этого отправило пост 5.
юля123321 вне форума Ответить с цитированием
Старый 01.12.2016, 15:03   #10
юля123321
Пользователь
 
Регистрация: 28.11.2016
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Поставь вперед инструкцию с описанием типа
Тогда пишет Program1.pas(3) : Неизвестное имя 'Nmax'
юля123321 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
String array [java] madmaniac Помощь студентам 0 23.03.2012 02:55
Паскаль, array of string. pdesyatnyk Помощь студентам 4 26.02.2012 18:14
В String и Array сразу. Cubaholic Общие вопросы Delphi 3 19.11.2008 23:01
array of char -> string Valkiria Общие вопросы Delphi 5 04.10.2007 10:40
Преобразовать из string в array of char vitalik007 Общие вопросы Delphi 6 07.09.2007 01:15