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

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


 

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

82338. Казахстан в середине 60-х нач. 80-х годов. Социально-политическое развитие 30.01 KB
  Состав депутатов Верховного Совета СССР где были представлены чабаны колхозники рабочие промышленных предприятий техническая интеллигенция люди науки и искусства партийные и хозяйственные руководители и служил якобы подтверждением этой новой общественнополитической ситуации в обществе. Группа деятелей высшего политического руководства СССР в глубокой тайне подготовила смещение Н. Суслов и председатель КГБ СССР В. Смена политического руководства СССР в октябре 1964 года вскоре стала сказываться и на состоянии культуры.
82339. Восстание Кенесары Касымова (причины, характер, движущие силы, итоги) 27.95 KB
  Движущие силы численность: все слои населения – крестьянешаруа бии батыры султаны 20 тысяч человек все слои населения – крестьянешаруа бии батыры султаны Ход восстания: осень 1837 – организация отрядов повстанцев; начало открытого сопротивления царскому правительству; весналето 1838 – вооруженные столкновения с царскими отрядами нападение на аулы ненавистных султанов; разгром Акмолинской крепости отрядом Кенесары; увеличение отрядов перемещение центра восстания из Среднего в Младший жуз; 1840 – вторжение Кенесары в Кокандское...
82340. Экономическое развитие Казахстана в 60-ые годы ХХ. Рост новых городов 32.27 KB
  Такой подход положительно сказался на тонусе общественной жизни Казахстана. Удельный вес Казахстана в общесоюзной добыче железной руды достиг 54 . На территории Казахстана были размещены космодром и атомный полигон.
82341. Понимание невербальной эмоциональной экспрессии младшими подростками 389.5 KB
  Работая в этих областях отечественные психологи-практики столкнулись с фундаментальной ошибкой сформировавшейся в результате полного игнорирования тех идей психологии невербального общения которые имели отношения к вечной проблеме взаимосвязи души и тела экспрессии и психологических особенностей человека.
82342. Разработка программы построения таблицы истинности логической функции 155 KB
  Истинность логических выражений помогает определить таблица истинности логических функций. С помощью таблиц истинности можно устанавливать эквивалентность выражений и справедливость равенств законов алгебры логики.
82343. ТЕОРЕТИЧНІ ОСНОВИ ФОРМУВАННЯ ФІНАНСОВОЇ СТРАТЕГІЇ РОЗВИТКУ ПІДПРИЄМСТВА 4.07 MB
  З метою подальшого розгляду процесу формування фінансової стратегії підприємства доцільно уточнити поняття фінансового розвитку підприємства стратегії та фінансової стратегії підприємства. В загальному під розвитком розуміють надбання нової якості яка зміцнює життєздатність підприємства в умовах змін середовища.
82344. Проект реконструкции участка диагностики автосервиса с целью увеличения количества обслуживаемых клиентов 1.31 MB
  Цель дипломного проекта заключается в реконструкции участка диагностики связанной с совершенствованием технологического процесса внедрением нового оборудования улучшением условий труда с целью увеличения количества обслуживаемых клиентов...
82345. Технология приготовления скомплектованного обеда из трех блюд 2.6 MB
  Неотъемлемой частью культуры каждого народа является кухня. Недаром этнографы начинают исследование жизни любого народа с изучения его кухни, ибо в ней в концентрированном виде отражается история, быт и нравы народа. Русская кухня в этом смысле не исключение, она так же является частью нашей культуры, нашей истории.
82346. Манипулятивный потенциал бренда в рекламной коммуникации (на примере деятельности LTD IKEA) 470 KB
  Актуальность темы данного дипломного проекта заключается в том, что для успешного развития бизнеса необходимо понимать изменение в массовой психологии восприятия, а так же уметь использовать этот фактор. В современном обществе, перенасыщенном информацией, становится все сложнее донести сообщение до потенциального...