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

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


 

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

65193. Общее представление о социальной психологии как науке, ее объекте, и предмете. Социальная психология в системе психологических знаний 36.5 KB
  Социальная психология раздел психологии изучающий поведение человека в обществе социуме психические явления происходящие во время взаимодействия различных групп людей. Выработка практических рекомендаций в плане совершенствования взаимодействия людей...
65194. Проблемы и методы социальной психологии 31.5 KB
  Социальная психология пользуется определением личности которое даёт общая психология выясняет каким образом т. Отличие такого подхода от социологического заключается в том что она выявляет каким образом сформировались эти социально-типические черты почему в одних условиях формирования личности...
65195. ОСНОВНЫЕ ИДЕИ ЭЛЕЙСКОЙ ШКОЛЫ (КСЕНОФАН, ПАРМЕНИД, ЗЕНОН) 56.5 KB
  Согласно Пармениду то что есть бытие есть и это следует из самого понятия быть а того чего нет небытия нет что также следует из содержания самого понятия. Пустота отождествляется с небытием так что пустоты нет.
65196. ЕСТЕСТВЕННОЕ ВСКАРМЛИВАНИЕ ЗДОРОВОГО РЕБЕНКА 109.5 KB
  Представьте себе сколько съедал бы в сутки взрослый человек если бы его потребность в пище была бы равной потребности ребенка этого возраста. При недостатке белка в пище у ребенка могут нарушаться процессы роста и даже психического развития...
65197. Издержки производства, их виды. Трансакционные издержки, их структура и роль в развитии экономики 26.77 KB
  Издержки производства затраты связанные с производством и обращением произведенных товаров. Виды: Постоянные издержки это такой вид затрат который несет предприятие в рамках одного производственного цикла.
65198. Историческая основа дипломатической школы Китая 37 KB
  Древнейшие сведения о контактах Китая с Римом приводит историк Луций Анней Флор. Он сообщает что ко двору Октавиана Августа прибыло посольство из Китая которое провело в дороге четыре года и что цвет их кожи служил убедительным доказательством того что живут они под другим небом нежели римляне.
65200. Основные законодательные и директивные акты по охране труда 31 KB
  Правовой основой организации работ по охране труда в республике является Конституция РБ которая гарантирует право граждан на здоровые и безопасные условия труда охрану их здоровья. Основополагающим законодательным актом определяющим и регулирующим правоотношения в сферах труда и охраны труда...
65201. Функции конкуренции в социальном рыночном хозяйстве. Законные средства конкурентной борьбы 16.5 KB
  Будучи базовым механизмом рыночных отношений конкуренция заставляет предпринимателей соперничать между собой и тем самым способствует достижению наилучших социальных и деловых результатов. Функцию мотивации конкуренция выполняет путем стимулирования предпринимателей...