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.  Выводы по работе

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


 

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

35035. ADEM как важное звено CALS-технологий 152 KB
  Обычно понимание главной цели происходит не сразу, а в результате кропотливой работы, которая может занимать годы. Даже если задача сформулирована правильно, то для её решения необходимы ресурсы и инструменты, которых может и не существовать на данный момент времени
35036. САПР ElectriCS и UG/Wiring Технологии разработки бортовых электрифицированных систем в авиационно-космической отрасли 282 KB
  Цепочка проектирования ElectriCS и UG Wiring Укрупненная блоксхема цепочки проектирования отображенная на рис. Рис. Порядок разработки принципиальной схемы Э3: внесение в проект электрических устройств из базы электрических устройств рис. 2; определение буквеннопозиционных обозначений электрических устройств; разработка принципиальной схемы с использованием редактора схем utoCD рис.
35037. SCS и SchematiCS 57 KB
  Реферат по презентации программ SCS и SchemtiCS Преподаватель: Сенько В. Использование SchemtiCS4 2. Использование SchemtiCS. Приложение SchemtiCS работает на платформе utoCD и применяется для автоматизации создания и оцифровки схем любой сложности.
35038. Программное обеспечение Solid Edge 67 KB
  Solid Edge — среднеуровневая трехмерная твердотельная CAD-система, предназначенная для проектирования моделей деталей, создания сборок с сохранением ассоциативных связей и выпуска чертежной документации на базе созданных моделей. Интегрирована с системой высокого уровня Unigraphics и системой управления проектом iMAN
35039. Проектирование распределительной сети собственных нужд на основе компьютерной модели с использованием программы ElectriCA 91 KB
  Проектирование низковольтной распределительной сети собственных нужд ТЭС связано со значительными трудозатратами что объясняется с одной стороны большой размерностью задачи а с другой большим количеством разноплановых расчетов. По существующей технологии проектирования сети собственных нужд ТЭС весь комплекс проектных работ разбивается на следующие этапы: Анализ состава потребителей электрической энергии и их ориентировочное распределение по возможным источникам питания. Расчеты отклонений напряжения выполняются для наиболее критичных...
35040. Адміністративна відповідальність. Притягнення до адміністративної відповідальності 493.5 KB
  В посібнику розкриваються поняття, правові та фактичні підстави адміністративної відповідальності, види та загальні правила накладення адміністративних стягнень, розглядаються питання підвідомчості справ про адміністративні правопорушення, провадження у справах про них: порядок порушення та розгляду справи, оскарження постанови і перегляду справи, а також виконання постанов про накладення адміністративних стягнень
35041. Использование PlanTracer и RasterDesk при проектировании структурированных кабельных сетей 219.5 KB
  Идеален случай когда при строительстве или реконструкции организациягенпроектировщик создает в CDприложениях поэтажные планы с детальной прорисовкой элементов здания и всех видов коммуникаций вентиляции и кондиционирования. Вариант первый: сканирование позволяющее использовать полученное растровое изображение в качестве подложки рис. К тому же при низком качестве исходного материала синька часто используемые планы этот способ применять нельзя рис. Второй вариант перерисовка.
35042. Project Studiocs Электрика 3.0 254.5 KB
  15 Введение Разработка компании Consistent Softwre САПР Project Studiocs Электрика хорошо знакома специалистам. До августа 2004 года основное внимание разработчиков было направлено на развитие существующих тогда самостоятельных модулей пакета Project Studiocs Электрика: Project Studiocs Освещение создание проектов внутреннего электрического освещения и Project Studiocs Сила создание силовой части проектов электроснабжения зданий и сооружений. В декабре 2004 года компания Consistent Softwre объявила о выходе новой версии САПР Project...
35043. CAD/CAM системы среднего уровня на примере систем Cimatron, MasterCam, Solid Edge 585.5 KB
  Реферат по САПР на тему: CD CM системы среднего уровня на примере систем Cimtron MsterCm Solid Edge.5 MsterCm. На рынке программных продуктов широко используются два типа твердотельного геометрического ядра: Prsolid CIS К наиболее известным CD CM системам среднего уровня построенным на основе ядра CIS относятся: DEM Cimtron MsterCm utoCD 2000 Powermill CDdy Brvo К наиболее известным CD CM системам среднего уровня построенным на основе ядра Prsolid относятся: ...