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

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


 

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

3671. Елементи автоматизації технологічних розрахунків 132 KB
  Елементи автоматизації технологічних розрахунків В модулі надано приклад математичних моделей, які використовуються при вирішення задач по розрахунку режимів різання. Завдання по темі: розробити і від тестувати програми , які реалізують наведена ...
3672. Алгоритми сортування в одновимірних масивах 42.5 KB
  Алгоритми сортування в одновимірних масивах Найпростіше завдання сортування полягає в упорядкуванні елементів масиву по зростанню або убуванню. Іншим завданням є впорядкування елементів масиву відповідно до деякого критерію. Звичайно як такий критер...
3673. Алгоритми пошуку в одновимірних масивах 40.5 KB
  Алгоритми пошуку в одновимірних масивах Алгоритми пошуку застосовуються для знаходження, наприклад, у масиві елемента з потрібними властивостями. Звичайно розрізняють постановки завдання пошуку для першого й останнього входження елемента. В усіх ниж...
3674. Аналіз позакласних виховних заходів 29 KB
  Аналіз позакласних виховних заходів Важлива роль у вихованні студентів, розширенні і поглибленні їхніх знань, розвиткові творчих здібностей належить спеціально організованій в Рівненському музичному училищі виховній роботі у позанавчальний час. Поза...
3675. Загальне мовознавство Конспект лекцій 147 KB
  ЛЕКЦІЯ № 1 ВСТУП МЕТА: з’ясувати суть, мету, предмет і об’єкт загального мовознавства, його роль і місце в лінгвістичній освіті. ПЛАН 1. Мета, завдання курсу "Загальне мовознавство". 2. Місце серед інших лінгвістичних дисциплін. 3. Загальн...
3676. ЕП системи наведення з керуванням на основі програмованого логічного контролера VIPA-100. 5.95 MB
  За темою бакалаврської кваліфікаційної роботи мною був розроблений і виготовлений стенд з електромашинним агрегатом для дослідження ЕП системи наведення з керуванням на основі програмованого логічного контролера VIPA-100. Промисловий контролер...
3677. Методические основы оценки ущерба от чрезвычайных ситуаций 135.5 KB
  Методические основы оценки ущерба от чрезвычайных ситуаций При оценке ущерба от чрезвычайных ситуаций (ЧС) необходимо опираться на существующий нормативный аппарат анализа экономических ущербов от негативного влияния хозяйственной деятельности. Важн...
3678. Техническое обслуживание и ремонт пускового карбюраторного двигателя ПД-10У. № 866 597.5 KB
  Техническое обслуживание и ремонт пускового карбюраторного двигателя ПД-10У. № 866 Введение Карбюраторными двигателями называют двигатели, в которых основная часть процесса приготовления рабочей смеси жидкого топлива с воздухом осуществляется вне ци...
3679. Методы расчета сложных электрических цепей 209 KB
  Методы расчета сложных электрических цепей Расчетное задание Для заданной электрической цепи, в которой, а остальные параметры указаны в таблице, требуется рассчитать: все токи и напряжения методом контурных токов все токи и напряжен...