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

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


 

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

59286. У світі цікавого 28 KB
  Мета: закріпити знання з вивчених казок. Обладнання: Уривки казок малюнки до казок ребуси. Тепер перейдем до третього конкурсу відгадування казок. Ми читаємо уривки з казок а ви відгадуєте з якої це казки.
59287. Козацькі забави 37 KB
  У кінці змагань курінь-переможець нагороджується символами гетьманської влади та призами. Переможе той курінь чий захисник найдовше протримається захищаючи свою фортецю. Перемагає курінь члени якого здолали найбільше суперників.
59288. Слабка ланка 68 KB
  Назвіть 101ий елемент періодичної системи Мендєлєєва. Назвіть дану кислоту. Назвіть хімічний елемент який розташований у першому періоді і пешій групі головної підгрупи. Назвіть метал який пасивує нітратна кислота.
59289. Дружні стосунки між школярами. Які вони повинні бути 74 KB
  Мета. Виховувати дружні стосунки між школярами, розкрити перевагу добра над злом. Виховувати бажання жити в мирі й злагоді з рідними, близькими.
59290. Сценарій виховного заходу. Пори року 99.5 KB
  Не перелічити скільки разів зустрічаємо ми ніжну берізку і могутню ялину безмежні поля і дрімучі ліси озера і суворі скелі. Ось і писати треба так щоб на картині не було видно його але чутно було як співають птахи віють вітри дзюркотять струмки...
59291. НАШІ БАБУСІ 30 KB
  Діти сьогодні до нас завітали найулюбленіші для кожного з вас люди ваші бабусі. Ось вслухайтесь діти у саме слово: бабуся бабусенька бабунечка бабусечка бабця. А чому Діти. Тому що бабуся прожила на світі удвічі більше ніж наші мама і тато бачила в житті удвічі більше ніж наші мамо й тато...
59292. КОЗАЦЬКІ ЗАБАВИ 59 KB
  Чи любите діти ви подорожувати Відповіді дітей. Хто такі козаки Діти. Що ви знаєте про Січ Діти. Правда діти рабства каламутну ніч Переборювала Січ.
59293. ВЕСНА 57.5 KB
  В народі про мене кажуть: Березень - з водою, квітень - з травою, а травень - з квітами. Які чудові мої квіти! Які весняні квіти ви знаєте? Учні: 1.Весна-чарівниця...
59294. ПОДОРОЖ ПО СТОРІНКАХ УЛЮБЛЕНИХ КАЗОК 73.5 KB
  Дорогі діти я знаю що ви дуже любите читати і слухати казки. Поміркуйте поспішіть Як же звуть його скажіть Діти відгадують казку Золотий ключик О. Добрий день шановні діти Дуже радий бачить вас Хочу з вами подружитись Тож у подорож зібравсь.