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

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


 

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

2782. Изучение резонанса токов и напряжений 245 KB
  Изучение резонанса токов и напряжений Приборы и принадлежности. Реостат, катушка с выдвигаемым железным сердечником, магазин емкостей, амперметр, вольтметр. Резонанс напряжений. Рассмотрим электрическую цепь, состоящую из соединенных последовательно...
2783. Формирование рациональной структуры технологического объекта с ПИД регулятором 237 KB
  Цель работы: Построение пусковой характеристики технологического процесса. Сравнение способов математического представления звена с запаздыванием. Формирование ПИД - закона регулирования. Определение оптимальных параметров ПИ...
2784. Моделирование следящего электропривода 399.5 KB
  Моделирование следящего электропривода Цель работы: Исследование следящей системы, определение качественных показателей СЭП и построение ЛАЧХ. Формирование корректирующего устройства, улучшающего качественные показатели СЭП. Исслед...
2785. Исследование системы автоматического регулирования мощности турбины 90 KB
  Исследование системы автоматического регулирования мощности турбины Цель работы:  Освоение методики набора динамических объектов на ПК и проведение моделирования систем автоматического регулирования мощности турбин с использованием ППП SIAM...
2786. Моделирование системы регулирования частоты вращения двигателя с двухзонным управлением 386.5 KB
  Моделирование системы регулирования частоты вращения двигателя с двухзонным управлением Цель работы: Изучение принципа построения модели двухзонного управления частотой вращения двигателя. Реализация моденлирования системы на ПК...
2787. Греція - колиска Олімпійських ігор 34.5 KB
  Греція ─ колиска Олімпійських ігор Мета заходу: виховна полягає в тому, щоб виховати в учнів інтерес до різноманітних спортивних змагань та їхньої історії, пізнавальна полягає в тому, щоб учні поглибили свої знання з даної теми та могли застосувати її на інших уроках;
2788. План роботи Класного керівника ФИО з колективом 5-А класу 121 KB
  План роботи Класного керівника ФИО з колективом 5-А класу на І семестр 2011-2012 н.р. І. АНАЛІЗ ВИХОВНОЇ РОБОТИ ЗА 2010-2011 Н. Р. З дітьми у ролі класного керівника працюю перший рік, як вчитель-предметник другий рік. Готуючись прийн...
2789. Я люблю Україну 33.71 KB
  Я люблю Україну - Я вітаю всіх із тим, що саме вам  випала честь розпочати конкурсно-розважальний проект Я люблю Україну! Я впевнена, що серед присутніх не знайдеться жодної людини, яка б хоч раз не дивилась телевізійну версію цього проекту. ...
2790. Внеклассное мероприятие по теме 36 KB
  Внеклассное мероприятие по теме La music Francaise Было проведено студентками-практикантками Дунаевой Еленой и Киселевой Евгенией Класс 5Б и 5В Цели: ознакомить учащихся с музыкальной культурой франции и ее историей. Задачи:  расшир...