5100

Создание консольных приложений в среде Visual C++

Курсовая

Информатика, кибернетика и программирование

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

Русский

2012-12-03

52.5 KB

30 чел.

Цель работы: закрепление основных теоретических положений, изложенных в лекциях по курсу «Программирование на языках высокого уровня»,  отработка навыков практического программирования в среде Visual C++ при создании консольных программ, включая многофайловые.

Задания курсовой работы и особенности алгоритмов реализации.

Задание №1    Даны натуральные числа N и M (N>M). Вычислить

#include "stdafx.h"

#include "stdlib.h"

#include "math.h"

int fact(int k)

{

       int res = 1;

       for (int i = 1; i <= k; ++i)

       {

               res *= i;

       }

 

       return res;

}

double resh(int M,int N)

{

 int k=0,f=0;

 double res;

 for(k=M; k<N;k++)

 {f=fact(k);

  res+=k*k*log(f);

 }

 return res;

}

void funct()

{   int m,n;

 double result;

   printf("Vvedite M\n");

scanf("%d",&m);

printf("Vvedite N\n");

scanf("%d",&n);

result=resh(m,n);

printf("Otvet %f",result);

getchar();

}

 res  – это переменная, которая позволяют хранить, модифицировать и извлекать значения. Переменная, или объект – это именованная область памяти, к которой мы имеем доступ из программы; туда можно помещать значения и затем извлекать их. 

double-обозначает формат числа с плавающей запятой 

Задание №2

Найти  натуральное  число из интервала [a,b] с максимальной суммой делителей. (Для нахождения суммы делителей числа использовать функцию.)

#include "stdafx.h"

#include "stdlib.h"

#include "math.h"

int delit(int a,int b)

{

 int sum=0,int summax=1;

 int ch=1,i;

 for ( i=a;i<b;i++)

{

 sum=0;

 for (int k=1;k<(i%2+1);k++)

  if ((i%k)==0)

   sum+=k;

         sum+=i;

 if (sum>summax)

{

 summax=sum;

 ch=i;

}

}

printf("Delitel %d\n",sum);

 return i;

}

void funct2()

{   int a,b,c;

printf("Vvedite a");

scanf("%d",&a);

printf("Vvedite b");

scanf("%d",&b);

c=delit(a,b);

printf("Chislo=%d",c);

 getchar();

}

Задание №3

Во введенной строке символов (последний '*') подсчитать общее количество цифр и букв ‘с’.

#include "stdafx.h"

#include "stdlib.h"

#include "string.h"

int count_c(char str[])

{  char c='c';

  int d=0;

 for (int i=1; i<strlen(str);i++)

{

  if (strcmp(&str[i],&c))

   d++;

}

 return d;

}

int count_dig(char str[])

{   char *digit="1234567890";

 int d=0;

 for (int i=1; i<strlen(str);i++)

{

  if (strcmp(&str[i],digit))

   d++;

}

 return d;

}

void funct3()

{   char *str;

printf("vvedite predlogenie\n");

gets(str);

printf("v predlojenie %d -c\n",count_c(str));

printf("v predlojenie %d -cifr\n",count_dig(str));

 getchar();

}

Функция strcmp() сравнивает в лексикографическом порядке две строки и возвращает целое значение, зависящее следующим образом от результата сравнения. 

Функция COUNT всегда возвращает значение типа int. 

Переменную типа char можно рассматривать двояко: как целое число, занимающее 1 байт .

strlen — функция стандартной библиотеки, для возврата длины нуль-терминированной строки без символа окончания строки 

Задание 4

Написать и протестировать функцию, которая по заданной строке Str формирует новую строку, состоящую только из цифр, входящих в Str.


#include
 "stdafx.h"
#include "stdlib.h"
#include "string.h"
void myfunct(char str[])
{
char *chars=("qwertyuiopasdfghjklzxcvbnm,./';][{}:?><QWERTYUIOPASDFGHJKLZXCVBNM");
char *p;
int i;
for (i=0; i<strlen(str);i++)
{
p=strtok(&str[i],chars);
puts(p); 
}
}
void funct4()
{ char str[100];
printf("Vvedite stroku\n");
gets(str);
myfunct(str);
getchar();
getchar();
getchar();
}

Задание №5

Даны вещественные числа a и b (а<b). Сформировать матрицу Х[10,10], элементами которой являются вещественные случайные числа, равномерно распределенные на отрезке [а,b]. Определить сумму элементов матрицы, сумма номеров строк и столбцов которых равна n.

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

/*  Даны вещественные числа a и b (а<b). Сформировать матрицу Х[10,10],

 элементами которой являются вещественные случайные числа, равномерно распределенные на отрезке [а,b].

 Определить сумму элементов матрицы, сумма номеров строк и столбцов которых равна n.*/

#include <iostream>

#include <iomanip>

#include <stdlib.h>

#include <time.h>

using namespace std;

int main()

{

       const int SIZE = 10;//создаём переменную под величину массива(размерность)

       int matrix[SIZE][SIZE], a, b, sum, n;

       srand(time(NULL));      

       //запрашиваем верхнюю и нижнюю границы рандомизации

       cout << "Enter a: ";

       cin >> a;

       cout << "Enter b: ";

       cin >> b;

       cout << "Enter n: ";

       cin >> n;

       //проходим по ячейкам матрицы и заполняем

       for(int i = 0; i < SIZE; i++)

       {

               for(int j = 0; j < SIZE; j++)

               {

                       matrix[i][j] = a + rand() % (b + 1);

               }

       }

       //проходим еще раз, но проверяем выполнение условия задачи и закидываем подходящие элементы в переменную sum

       

       for (int i = 0;i < 10;i++)

               {

                       for (int j = 0;j < 10;j++)

                               {

                                       if (i+j==n)

                                               {

                                                       sum=sum+matrix[i][j];

                                               }

                               }

               }

       cout << sum;

       

}

Задание №6

Дан целочисленный массив S[26]. Сформировать матрицу А, первая строка которой будет содержать элементы массива с четными номерами, а вторая - с нечетными.



#include "stdafx.h"
#include "stdlib.h"
void formmas(int s[26])
{int i=0,j=0,x,h;
int G[13][13];
for(int k=0; k<26;k+=2)
{
i++;
G[0][i]=s[k];
}
for (int k=1;k<26;k+=2)
{
j++;
G[1][j]=s[k];
}
for (int x=0;x<13;x++)
for(int h=0;h<2;h++);
{
printf("%d\n\n",G[x][h]);
}
}
void funct6()
{ int mas[26];
int i,k;
printf("ZADACHAAAAA 5");
for (i=0;i<26;i++)
mas[i]=rand()%50;
formmas(mas);
getchar();
getchar();
getchar();
}


 

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

50045. Статистический характер прочности 379.5 KB
  Классификация нагрузок Нагрузки и воздействия представляют собой наиболее неопределенные величины обладающие большим статистическим разбросом. В части математического описания нагрузки делятся на: нагрузки представляющие собой случайные величины; нагрузки представляющие собой случайные функции времени; нагрузки изменяющиеся...
50047. Визначення показника заломлення та концентрації водних розчинів за допомогою рефрактометра 316 KB
  Мета роботи Ознайомитися з будовою і принципом дії рефрактометра типу РПЛ2 оволодіти методикою експериментального визначення показників заломлення та концентрацій водних розчинів цукру визначення граничних кутів які відповідають початку повного внутрішнього відбивання від межі розділу скло досліджуваний розчин Для виконання лабораторної роботи студенту попередньо необхідно: знати закони геометричної...
50048. Пересування як вид стройових вправ 44 KB
  Основи термiнологiï: випади махи ногами тулубом руками. Випади. Випад це рух або положення з виставленням i згинанням опорноï ноги. Випад лівою правою Положення коли опорна лiва права нога виставлена i зігнута вперед iнша нога стоїть позаду випрямлена в колiнi тулуб на однiй вертикалi з тазом Випад влiво вправо Положення коли опорна лiва права нога виставлена влiво впрао i зiгнута в колiнi тулуб вертикально Нахилений випад влiво вправо Положення коли виконується випад...
50050. Определение индуктивности соленоида и коэффициента взаимной индуктивности с помощью исследования вынужденных колебаний в RL – цепи 293 KB
  Определение индуктивности соленоида и коэффициента взаимной индуктивности с помощью исследования вынужденных колебаний в RL-цепи. Цепь состоит из генератора резистора обладающего активным электрическим сопротивлением цепи R и катушки индуктивности обладающей реактивным индуктивным сопротивлением 1 w = 2pn циклическая частота колебаний. Фаза колебаний напряжения на индуктивности опережает фазу колебаний напряжения...
50051. Изучение петли гистерезиса и измерение параметров ферромагнетика 168.5 KB
  Они способны сохранять намагниченность в отсутствие магнитного поля. Особенностью ферромагнетиков является сложная нелинейная зависимость между намагниченностью J и напряженностью магнитного поля H равносильно между вектором магнитной индукции В и напряженностью магнитного поля H. В действительности она является функцией напряженности поля Н и определяется как . Оно проявляется в том что при изменении намагничивающего поля Н магнитная индукция В в ферромагнетике отстает от внешнего магнитного поля Н.
50052. ЯВЛЕНИЕ САМОИНДУКЦИИ 99 KB
  Цель работы: ознакомиться с явлением самоиндукции; изучить зависимость постоянной времени электрической цепи состоящей из катушки индуктивности и омического сопротивления от величины сопротивления; определить величины индуктивности катушки и магнитной проницаемости сердечника соленоида. Найдём функциональную зависимость силы тока от времени. 12 Величину t=L R называют постоянной времени цепи которая равняется времени за которое при разрядке...
50053. Изучение команд меню Corel Draw10 117.5 KB
  Команда предназначена для загрузки в активный документ векторного растрового или текстового файла. Существует возможность загрузки нескольких десятков форматов и этот набор охватывает большинство наиболее распространенных графических и текстовых форматов. Позволяет сохранить информацию активного документа в различных форматах векторных растровых и текстовых. Текстовая информация может быть экспортирована либо вся либо из текущей страницы при включенном режиме Export this pge only Экспортировать лишь текущую страницу.