42710

ЯЗЫКИ ПРОГРАММИРОВАНИЯ. ПРОЦЕДУРЫ И ФУНКЦИИ

Лабораторная работа

Информатика, кибернетика и программирование

функция печати массива чисел диапазона от n до 2n не возвращает значения принимает указатель на массив чисел и размер массива void ProstNumunsigned long int; функция инициализации массива простыми числами не возвращает значения принимает указатель на массив чисел и размер массива unsigned EnterNumvoid; функция ввода натурального числа возвращает натуральное число значений не принимает void Find_Twinsunsigned long...

Русский

2013-10-30

145.5 KB

1 чел.

Министерство образования и науки РФ

Федеральное государственное бюджетное образовательное учреждение

Высшего профессионального образования

Владимирский государственный университет

имени А.Г. и Н.Г. Столетовых

(ВлГУ)

Лабораторная работа № 6

по дисциплине:

«Языки программирования»

на тему:

ПРОЦЕДУРЫ И ФУНКЦИИ

выполнил:

ст.гр. ВТс-212

Илларионов В.А.

приняла:

Сущинина А. А.

Владимир 2012г.

  1.  Текст индивидуального задания

Дано натуральное число n. Выяснить, имеются ли среди чисел n, n+1…2n, близнецы, т.е. простые числа, разность между которыми равна двум. (Определить процедуру, позволяющую распознать простые числа.).

  1.  Схема алгоритма решения задачи.


  1.  Спецификации всех разработанных процедур и/или функций.

Главной задачей данной работы было разбить все процедуры на блок функций. Для этого функции объявляются заранее и считываются.

  1.  Текст программы решения задачи на языке высокого уровня С++

#include "stdafx.h"

#include <iostream>

#include <windows.h>

using namespace std;

 void ArrayPrint(unsigned long *, int); // функция печати массива чисел диапазона от n до 2n ,  не возвращает значения , принимает указатель на массив чисел и размер массива

 void ProstNum(unsigned long *,int);    // функция инициализации массива простыми числами,  не возвращает значения , принимает указатель на массив чисел и размер массива

 unsigned EnterNum(void);               // функция ввода натурального числа, возвращает натуральное число, значений не принимает

 void Find_Twins(unsigned long *mas,unsigned); // функция поискачисел близнецов,  не возвращает значения , принимает указатель на массив чисел и натуральное число

void main()

{ setlocale(LC_ALL, "RUS");    

 const int size = 1000;    // размер массива

   unsigned  long mas[size]; // массив простых чисел

 unsigned  n ;             // натуральное число N

    cout<<"Простые числа \n\n";

    ProstNum(mas, size);   // заполнение массива простыми числами

 n = EnterNum();        // ввод натурального числа

 Find_Twins(mas,n);     // поиск чисел близнецов

    cout<<"\n";

    ArrayPrint(mas, n); // печать всех простых чисел диапазона от n до 2n

    cout<<"\n";

    system("pause");

}

unsigned EnterNum(void) // функция ввода натурального числа

{

 unsigned Natural;

cout<<"Введите натуральное число:  ";

   cin>>Natural;

cout<<"\n";

 return (Natural);

}

void Find_Twins(unsigned long *mas,unsigned Natural) // функция поискачисел близнецов

{

 for (int i =0; i<=Natural*2-1; i++)

 {

     if( mas[i]>=Natural && mas[i]<=Natural*2-2 && mas[i+1]-mas[i]==2)

   //если выбранный эл. массива больше или равен введеному числу,

   //а так же меньше или равен удвоенному произведению этого числа

   //и если разница между текущим и предыдущим значением эл. массива равно 2

   //  тогда выполнено условие и нахождения чисел близнецов

  {

   printf("числа близнецы: "); printf( "%ld ",mas[i]); printf("%ld ",mas[i+1]);

  cout<<"\n";

  }

 }

}

void ArrayPrint(unsigned long *mas, int size) // функция печати массива чисел диапазона от n до 2n

{

cout<<"\n"<<"Ряд простых чисел"<<"\n\n" ;

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

   //если выбранный эл. массива больше или равен введеному числу,

   //а так же меньше или равен удвоенному произведению этого числа

   //тогда выводи простые числа на экран

      { if ( mas[i]>=size && mas[i] <= size*2) printf("%ld ", mas[i]); }

}

void ProstNum(unsigned long *mas,int size) // функция инициализации массива простыми числами

{

    mas[0] = 2; // простое число начинается с цифры 2

    int i = 1;

    unsigned long numb = 3;

    bool flag;

    while (i < size)

    {

        flag = false;

  //Первое простое число – 2, затем каждое очередное число проверяем,

  // не делится ли оно на какое нибудь из уже найденных простых чисел.

  // Если не делится, то добавляем его в тот же массив.

  //Так да тех пор пока массив не заполнится.

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

            if (numb % mas[k] == 0)

            {

                flag = true;

                break;

            }

        if (flag == false)

        {

            mas[i] = numb;

            i++;

        }

        numb++;

    }

  1.  
    Тесты и результаты тестирования

Т.к. по требованию задачи требуется ввести натуральное число то при отрицательных числах программа работать не будет.

  1.  Выводы по работе

Таким образом, в данной работе я изучил принципы структурного программирования и модульного подхода, программирование процедур и функций, а так же способов передачи параметров в подпрограммы. Приобретение навыков формирования блочной структуры программы.


 

А также другие работы, которые могут Вас заинтересовать

35601. Понятие о геосинклиналях 15.47 KB
  В начальных стадиях развития Геосинклиналей преобладает погружение всей зоны и накопление внутри нее мощных толщ преимущественно обломочных и нередко основных эффузивных пород. В дальнейшем процессе развития Геосинклиналей усиливается интрузивная деятельность а в отдельных местах происходит образование складок завершающееся поднятием а затем новым погружением этих участков что обусловливает перерывы в осадконакоплении в различных местах. Заключительные этапы развития Геосинклиналей связаны с усилением складкообразования и обычно с...
35602. Этапы развития земной коры 15.45 KB
  Важным фактором развития Земли на этом этапе и несколько позднее по аналогии с Луной принимается предполагаемая метеоритная бомбардировка спровоцировавшая разогрев и интенсивный базальтовый вулканизм. На этом этапе развития началось расслоение Земли на оболочки ядро внутреннее и возможно внешнее мантию кору и атмосферу. Раннеархейский этап 4035 млрд.
35603. Ответы к зачету по геологии 113.87 KB
  Кювье применили палеонтологические методы определения возраста горных пород что позволило установить основные этапы развития Земли и земной коры. Основу геологических знаний дают полевые исследования местности где изучаются геологические породы особенности залегания слоев и геологических тел которые можно изучить в естественных обнажениях шурфах и искусственных карьерах. В витринах к данным стендам представлены образцы разнообразных микроразрывов зеркал скольжения кливажа складок разной формы различных пород. По занимаемому в составе...
35604. Физика. Модели в механике 2.06 MB
  Под воздействием тел друг на друга тела могут деформироваться т. Абсолютно твердым телом называется тело которое ни при каких условиях не может деформироваться и при всех условиях расстояние между двумя точками или точнее между двумя частицами этого тела остается постоянным. Любое движение твердого тела можно представить как комбинацию поступательного и вращательного движений. Вращательное движение это движение при котором все точки тела движутся по окружностям центры которых лежат на одной и той же прямой называемой осью вращения.
35605. Магнитики из гипса. Мастер-класс 760 KB
  Мастеркласс Вы видите эти магнитики на холодильник А знаете из чего они Ответ прост: из гипса. Итак нам понадобится: гипс; собственно сами магниты; формы для отливки; акриловые краски; универсальный клей. Где всё это искать Гипс как и магниты можно найти в магазинах для рукоделия.
35606. Магнитики на холодильник 26.5 KB
  Магнитики на холодильник могут наклеиваться с практической целью чтобы например оставлять заметки на видном месте или научить ребенка читать или считать. В других случаях многочисленные магнитики могут рассказать о продуктах которые съели их хозяева или о местах где они побывали. Очень интересно будет смотреться если вы сделаете магнитики на холодильник своими руками. Это достаточно творческое развивающее фантазию занятие которое может превратить ваши магнитики на холодильник в поистине уникальные если можно так сказать дизайнерские...
35607. Магнітики на холодильник із гіпса 14.55 MB
  Перший етап роботи Спочатку потрібно підготувати місце для роботи і застилити стіл газетами і надіти фартух щоб не забруднитися. Розчин готовий Другий етап роботи Тепер можна заливати готовий розчин у формочки мишізмії та єнота. Третій етап роботи Минув день.
35608. Весна пришла 21.68 KB
  Дети смотрят на рабочий стол и выполняют просьбу учителя.Блок биография Дети выходят к доске и рассказывают стихотворение которое было задано в д з 2 Дети слушают биографию А. Дети следят за учителем и выделяют незнакомые слова. Далее дети разбирают незнакомые слова.
35609. Проект «Творческая весна» 35.5 KB
  Развитие творчества и любознательности детей является весьма актуальной темой в период обучения. формирование уважительного отношения к одноклассникам Воспитательные способствование установлению доброжелательных взаимоотношений между участниками образовательного процесса воспитание самостоятельности аккуратности развитие навыков сотрудничества между одноклассниками развитие художественного вкуса детей Развивающие развитие у школьников черт культурной личности: оценивать художественные произведения музыкальные и литературные ...