5100

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

Курсовая

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

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

Русский

2012-12-03

52.5 KB

26 чел.

Цель работы: закрепление основных теоретических положений, изложенных в лекциях по курсу «Программирование на языках высокого уровня»,  отработка навыков практического программирования в среде 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();
}


 

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

6906. Электромагнитное поле. Полная система уравнений электромагнитного поля в дифференциальной и интегральной форме. Волновое уравнение 28.22 KB
  Электромагнитное поле. Полная система уравнений электромагнитного поля в дифференциальной и интегральной форме. Волновое уравнение. Электромагнитное поле - это совокупность электрических и магнитных полей, которые могут переходить друг в друга...
6907. Визначення питомого заряду електрону методом магнетрону 276.5 KB
  Визначення питомого заряду електрону методом магнетрону Мета роботи - вивчення одного з методів визначення питомого заряду електрону, який базується на рухові заряджених частинок під дією однорідного магнітного і радіального електричного полів,...
6908. Дослідження електричних полів 279.5 KB
  Дослідження електричних полів Мета роботи: користуючись методом електролітичної ванни визначити еквіпотенціальні поверхні та силові лінії електричного поля між електродами різної конфігурації, розрахувати траєкторію руху пучка електронів. Зміст робо...
6909. Термоелектронна емісія 387 KB
  Термоелектронна емісія Мета роботи: дослідження явища термоелектронної емісії на основі циліндричного вакуумного діода та його вольт-амперних характеристик перевірка закону трьох других та визначення питомого заряду електрона визначення роботи ...
6910. Дослідження плазми газового розряду 410.5 KB
  Дослідження плазми газового розряду Мета роботи: визначення основних параметрів плазми (температури електронного газу і концентрації електронів) методом електричних зондів Ленгмюра. Зміст роботи і завдання 1. Для трьох - п’яти різних значе...
6911. Дослід Франка та Герца 126.5 KB
  Дослід Франка та Герца Мета роботи: Дослідити вольт-амперну характеристику вакуумної лампи з парами ртуті. Переконатися, що електрони які зазнали зіткнень з атомами ртуті передають їм енергію лише характерними порціями (енергія переходу). Визначити ...
6912. Методи вимірювання магнітних полів 79.5 KB
  Методи вимірювання магнітних полів Мета роботи: Ознайомлення з принципом дії приладу Ш1-1 для вимірювання індукції магнітного поля (принцип ядерного магнітного резонансу). Ознайомлення з принципом дії прилада Ш1-8 для вимірювання індукції магн...
6913. Цели и задачи работы школы на 2011 – 2012 учебный год 34.91 KB
  Цели и задачи работы школы на 2011 - 2012 учебный год. Цель: Повышение качества обученности, среднего балла на независимых экзамена, обеспечение занятости обучающихся в системе ДО - 98%. Задачи: Организовать посещение уроков и провед...
6914. План воспитательной работы в 10 классе на 2008 - 2010 учебный год 136.5 KB
  План воспитательной работы в 10 классе на 2008 - 2010 учебный год Планирование воспитательной работы на 2009 - 2010 учебный год составлено на основании методических рекомендаций по работе над социальным проектом, выбранным в прошлом году. ...