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

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


 

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

80447. Прилітайте, птахи, додому! 194.5 KB
  Загальнопізнавальні цілі: ознайомити дітей з перелітними та зимуючими птахами;повторити вивчений матеріал про цифри, геометричні фігури, множини; удосконалювати навички розв’язування прикладів і задач; розвивати навички усної лічби, уваги, мислення; виховувати любов бережливе ставлення до природи, до птахів.
80449. Шлях до незалежності 38 KB
  Головна мета: ознайомлення учнів з основними державотворчими подіями становлення незалежної України,вмвчення основних засад демократичного та суспільного ладу України,її досягнень за останні роки; закріплення знань про державну символіку (Герб, Прапор, Гімн, Основний Закон України-Конституцію)...
80450. Гілка сакури та кетяг калини. Діалог японської та української культур 484.5 KB
  Мета. Показати зарубіжну країну через її народ, прослідкувати своєрідні риси національної культури та літератури, провести паралель між японською та українською культурами. Виховна мета. Прищеплювати інтерес до культури народів світу,прагнення до пізнання життя, повагу до самобутності...
80451. Складання казки «Барвінок». Розвиток зв’язного мовлення 51.5 KB
  Мета: вчити учнів висловлювати свої думки в логічній послідовності; збагачувати активний словник учнів; розвивати творчі здібності, спостережливість; виховувати любов до природи, вміння відчувати красу рідного слова. Обладнання: ілюстрації та малюнки дітей із зображенням барвінка, аудіозапис «Пори року» П.Чайковського.
80452. Урок Доброти 4.2 MB
  Обладнання: комп’ютер дві презентації Казка про краплинку Твори Добро свічки картки для роботи в групах. Що на вашу думку може статися далі впасти зникнути або трапитись чудо Як хотіла жити Краплинка спокійно спати ні про що не думати байдужість безтурботність...
80453. Как правильно переходить дорогу (практическое занятие); разбор конкретных ситуаций 41 KB
  Как правильно переходить дорогу практическое занятие; разбор конкретных ситуаций. Кто-то норовит перебежать дорогу прямо перед вами рискуя попасть под ваши колеса. Вспомните как правильно нужно переходить дорогу. Где ж второй участник спора Он достиг конца пути И стоит у светофора...
80454. Герої мультфільмів. Теперішній тривалий час 1.62 MB
  Освітня мета: навчати порівнювати явища іноземної й мови рідної; формувати уявлення про мовну будову англійської мови; поглибити знання учнів про найвідоміші мультфільми світу; формувати усвідомлення важливості оволодіння іноземною мовою і потребою користуватися нею як засобом спілкування.
80455. Learn About the World Around 73 KB
  What season is it now? What month is it now? What are the four seasons of the year? What’s your favourite season? Why? What are the spring month? What’s your favourite spring month? Why? What is the weather like in March May?