Структурное программирование на языке Паскаль


Download 0.94 Mb.
bet7/13
Sana28.12.2022
Hajmi0.94 Mb.
#1070567
1   2   3   4   5   6   7   8   9   10   ...   13
Bog'liq
Массивы. Поиск элемента в массиве

readln(nf);
  • for i:=1 to nf do readln(a[i]);
  • { и далее все циклы работы с массивом используют nf}
    • Этот вариант более гибок и технологичен по сравнению с предыдущим, т.к. не требуется постоянная перекомпиляция программы, но очень нерационально расходуется память, ведь ее объем для массива всегда выделяется по указанному максимуму. Используется же только часть ее.
    • Вариант третий – в нужный момент времени надо выделить динамическую память в требуемом объеме, а после того, как она станет не нужна, освободить ее.
    • Program dynam_memory;
    • type mas = array[1..2] of <требуемый_тип_элемента>;
    • ms = ^mas;
    • var a : ms;
    • i, nf : integer;
    • begin
    • writeln('введите фактич. число элементов массива');
    • readln(nf);
    • getmem (a, sizeof(<требуемый_тип_элемента>) *nf);
    • for i:=1 to nf do readln(a^[i]);
    • { и далее все циклы работы с массивом используют nf}
    • . . .
    • freemem(a);
    • end.
    • Где нужны динамические массивы?
    • Задача. Ввести размер массива, затем – элементы массива. Отсортировать массив и вывести на экран.
    • Проблема:
    • размер массива заранее неизвестен.
    • Пути решения:
      • выделить память «с запасом»;
      • выделять память тогда, когда размер стал известен.
    • Алгоритм:
    • © С.В.Кухта, 2010
    • Использование указателей
    1   2   3   4   5   6   7   8   9   10   ...   13




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
    ma'muriyatiga murojaat qiling