Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ ИНФОРМАТИКИ И ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ СИ. Лабораторный практикум доцента кафедры «Информационные системы и компьютерные технологии» Пановой Т.В. БГТУ «ВОЕНМЕХ».doc
Скачиваний:
146
Добавлен:
26.03.2015
Размер:
1.27 Mб
Скачать

3. Блок-схема алгоритма программы:

4. Текст программы:

#include <stdio.h>

#include <conio.h>

int main()

{

const c=15;

int n,j=0,mas[c],mas_new[c],*p,*p_new;

do

{

printf(“\n input n=”);

scanf(“%d”,&n); // ввод количества элементов в массиве

}

while (n<=0 || n>c);

p=&mas[0];

p_new=&mas_new[0];

printf(“\n input massiv:\n”);

for (int i=0;i<n;i++)

{

scanf(“%d”,p); // ввод элементов массива

p++;

}

p-=n;printf(“\n output massiv:\n”);

for (i=0;i<n;i++)

{

printf(“%d “,*p); // вывод элементов массива

p++;

}

p-=n;

for (i=0;i<n;i++)

{

if (*p>0)

{

*p_new=*p; // создание нового массива

p_new++;

j++;

}

p++;

}

if (j!=0)

{

p_new-=j;

printf(“\n output massiv:\n”);

for (i=0;i<j;i++)

{

printf(“%d “,*p_new); // вывод элементов нового массива

p_new++;

}

}

else printf(“\n there are no elements>0\n”);

getch(); return 0;

}

5. Тестирование:

Теоретически рассчитанное выходное значение

Практически полученное выходное значение

Тест 1: входной массив: n=10; mas[n]: 1 -5 0 -9 5 7 0 -2 4 0

j=4; mas_new[j]: 1 5 7 4

j=4; mas_new[j]: 1 5 7 4

Тест 2: входной массив: n=10; mas[n]: -1 -5 0 -9 -5 -7 0 -2 -4 0

«нет элементов>0»

«нет элементов>0»

Задача 2.

1. Постановка задачи: разработать алгоритм нахождения в введенном массиве из n элементов последнего наименьшего элемента, обмена местами его с третьим элементом и вывода полученного массива. Написать программу, реализующую разработанный алгоритм.

2. Математическая модель и описательный алгоритм: входной массив х: -5 8 0 4 -5 7 9 0 9 -1 (индексы элементов массива: 0 1 2 3 4 5 6 7 8 9); последний наименьший элемент в массиве x[4]=-5; третий элемент в массиве x[2]=0; выходной массив x после перестановки элементов: -5 8 -5 4 0 7 9 0 9 -1 (0 1 2 3 4 5 6 7 8 9).

  • Объявить массив, размерность которого задать константой c: int x[c];

  • в цикле с постусловием n≤0 или n>c ввести количество элементов массива 0<n≤с;

  • указатель p установить на нулевой элемент: p=&x[0];

  • в цикле с параметром 0≤i<n ввести значения элементов входного массива по адресу p, p=p+1;

  • указатель p установить снова на нулевой элемент: p=p-n; в цикле с параметром 0≤i<n вывести значения элементов введенного массива *p, p=p+1;

  • p уменьшить на единицу (p=p-1), потому что после выхода из цикла вывода значений элементов массива p=n;

  • переменной min присвоить значение последнего элемента массива, используя операцию разыменования: min=*p,

  • в цикле с параметром i от n-2 и до 0 (i=i-1), начиная с предпоследнего элемента (p=p-1), сравнивать min с текущим элементом: если *p<min, то min и индекс минимального элемента k переопределять: min=*p, k=i;

  • чтобы поменять местами третий элемент с найденным, необходимо переопределить значения по адресам, используя операцию разыменования: *(p+n-1-k) =*(p+2), *(p+2)=min;

  • в цикле с параметром 0≤i<n вывести значения элементов выходного массива *p, p=p+1.

3. Блок-схема алгоритма программы:

Соседние файлы в предмете Программирование