Правила отчетности студента




Порядок выполнения работы

 

1. Массивы

 

Подробно этот пункт раскрыт в указаниях к лабораторной работе № 1. Вспомним основные моменты при работе с массивами.

1) Размерность нединамического массива может быть только константой или константным выражением. Рекомендуется задавать размерность с помощью именованной константы.

2) Элементы массива нумеруются с нуля, поэтому максимальный номер элемента всегда на единицу меньше размерности.

3) Автоматический контроль выхода индекса за границы массива не производится, поэтому программист должен следить за этим самостоятельно.

 

2. Генерация случайных чисел

 

Для экономии времени и удобства массивы в лабораторных работах желательно заполнять случайным образом, используя функции randomize (), random () и rand (). Функция генерации случайного числа RAND() иммет следующий формат:

INT RAND();

Функция RAND() генерирует случайное число в диапазоне от 0 до 32767, аргументов не имеет. Функция возвращает случайное число. Возвращаемого значения, определяющего ошибку, нет.

Например:

#include <имя файла>

main()

{

int X;

/* Вывод первых 20 сгенерированных случайных чисел */

For (X=1;X<=20;X++)

Printf("ШАГ %d,число= %d \n",X,Rand());

Return 0;

}

Можно также использовать функции randomize (), random (), работающие также как и аналогичные функции в Паскале. Функция randomize () гарантирует несовпадение случайно сгенерированных чисел. Функция random () делает случайную выборку из диапазона от 0 до 1, если параметр не указан и, если параметр присутствует, от 0 до значения этого параметра.

Например:

int n;

n = random(150);

Соответственно, в данном примере переменной n присвоится значение случайного числа из диапазона [0..150], включая граничные точки. Когда требуется сгенерировать отрицательное число, прибегают к следующему механизму: от константного значения нужной величины отнимают сгенерированное положительное число большее по модулю чем первый параметр.

Например:

int k[10],i;

randomize();

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

{

k[i] = 50 – random(100);

cout<<k[i]<<” ”;

}

Таким образом, в примере нижняя граница выборки будет (50-100) -50, верхняя (50-0) +50.

 

3. Разбор типового варианта.

 

Размерность массива – 200. Диапазон значений - 0…100. Найти значение 3-го по величине элемента и значения всех элементов массива, которые его превышают, заменить на найденное значение.

 

include <stdio.h>

#include <stdlib.h>

#include <conio.h>

main() {

clrscr();

const int N = 200;

int A[N];

int i,m1,m2,m3;

randomize();

printf("первоначальный массив:\n\n");

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

{

A[i]=random(101);

printf(" %d",A[i]);

}

m1=m2=m3=0;

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

{

if (A[i]>m1)

{ m3=m2; m2=m1; m1=A[i]; }

if (A[i]>m2 && A[i]<m1)

{ m3=m2;m2=A[i];}

if(A[i]>m3 && A[i]<m2) m3=A[i];

}

printf("\n\nтретье по величине значение массива = %d",m3);

printf("\n\nновый массив:\n\n");

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

{

if (A[i]>m3) A[i]=m3;

printf(" %d",A[i]);

}

getchar();

return 0;

}

 

Правила отчетности студента

1. Отчет должен содержать:

2.Титульный лист;

3. Цель работы; постановка задачи;

4. Текст программы (с комментариями!);

5. Результаты тестирования работы программы.

6. Контрольные вопросы

1. Массивы. Объявление массивов. Обращение к элементам массивов.

2. Чем выражается размерность нединамического массива?

3. Индексация (нумерация) элементов массива.

4. Генерация случайных чисел.

5. Функции randomize (), random () и rand ().

 

7. Варианты заданий

Размерность массива Диапазон значений Что нужно сделать
    -100…100 Заменить все элементы с отрицательным значением на значение минимального не равного 0 положительного элемента
    -50…50 Подсчитать количество пар соседних элементов с одинаковыми значениями
    0…100 Подсчитать количество участков, которые образуют непрерывные последовательности чисел с неуменьшающимися значениями
    -50…50 Подсчитать количество пар соседних элементов, которые имеют противоположные знаки
    -100…100 Вывести начальные индексы всех непрерывных последовательностей неотрицательных чисел, длина которых больше 5
    -100…100 Найти ту непрерывную последовательность положительных чисел, сумма элементов в которой максимальная
    -100…100 Разместить все элементы с положительными значениями в левой части массива, элементы с отрицательными значениями - в правой, а нули - между ними
    -100…100 Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов
    0…100 Найти непрерывный участок из 10 элементов, сумма которых максимальна
    0…100 Найти значение 3-го по величине элемента и значения всех элементов массива, которые его превышают, заменить на найденное значение
    -50…50 Найти количество пар соседних элементов, которые имеют одинаковые абсолютные значения, но противоположные знаки
    -100…100 Во всех последовательностях положительных чисел заменить значения элементов с максимальным и минимальным значением на среднее для этой последовательности
    0…100 Найти непрерывный участок из 10 элементов, который имеет наибольшее среднее значение элементов
    -50…50 Во всех последовательностях положительных чисел изменить порядок элементов на противоположный  
    -100…1000 Во всех последовательностях положительных чисел ограничить снизу значения тех элементов, значения которых меньше среднего для этой последовательности
    -50…50 Заменить все элементы с положительными значениями абсолютным значением отрицательного элемента с максимальным абсолютным значением
    -50…50 Вывести начальные индексы всех непрерывных последовательностей чисел с не увеличивающимися значениями
    -50…50 Вывести начальные индексы всех непрерывных знакопеременных последовательностей чисел
    -50…50 Подсчитать количество всех, непрерывных последовательностей положительных чисел, длина которых больше 7
    -50…50 Найти из непрерывных последовательностей отрицательных чисел ту, которая имеет наибольшее абсолютное значение среднего арифметического ее элементов

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-12-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: