Список используемых источников. Кинематическое уравнение движения материальной точки по прямой (ось х) имеет вид х =




Задание 1.

Кинематическое уравнение движения материальной точки по прямой (ось х) имеет вид х = A·t+B·t2+С·t3, где А=5 м, В = 4 м/с, С = -1 м/с2. Составить программу для определения средней скорости за интервал времени от t1= 1 c, t2 = 6 c.

Анализ задачи

Средняя скорость точки, двигающейся по прямой, равна отношению перемещения точки к промежутку времени, в течение которого это перемещение произошло. Следовательно

Текст программы

 

program P_1_14;

uses crt;

Var

vsr, t1, t2, x1, x2, A, B, C: real;

Begin

ClrScr; //{ Очистка экрана }

 

{ Ввод исходных данных }

 

write(' Введите A = ');

readln(A);

write(' Введите B = ');

readln(B);

write(' Введите C = ');

readln(C);

write(' Введите t1 = ');

readln(t1);

write(' Введите t2 = ');

readln(t2);

 

{ Вычисление координаты точки }

 

x1:=t1*(A+B*t1+C*t1*t1);

x2:=t2*(A+B*t2+C*t2*t2);

 

{ Вычисление средней скорости }

 

vsr:=(x2-x1)/(t2-t1);

 

{ Вывод результата }

writeln;

writeln(' Средняя скорость = ', vsr:8:2,' м/с.');

end.

 

Результат программы:

 


Задание 2.

На плоскости задана прямоугольная система координат с осями Х и У. Составить программу, которая вводит с клавиатуры координаты точки (х, у) и сообщает, принадлежит эта точки кругу с центром в начале координат и радиусом r (значение которого также вводится с клавиатуры) или лежит на границе его окружности или за ее пределами.

Анализ задачи

Для точки (х, у) внутри круга с центром в начале координат и радиусом r выполняется неравенство

x2 + y2 < r2

Для точки (х, у) на границе круга выполняется равенство

x2 + y2 = r2

Для точки (х, у) за пределами круга выполняется неравенство

x2 + y2 > r2

 

Текст программы

 

program P_2_17;

uses crt;

Var

x, y, r: real;

Begin

ClrScr; { Очистка экрана }

 

{ Ввод исходных данных }

write(' Введите координату точки x = ');

readln(x);

write(' Введите координату точки y = ');

readln(y);

write(' Введите радиус круга r = ');

readln(r);

 

{ Анализ положения точки }

if (x*x+y*y<r*r) then

writeln(' Точка расположена внутри круга.');

if (x*x+y*y=r*r) then

writeln(' Точка расположена на границе круга.');

if (x*x+y*y>r*r) then

writeln(' Точка расположена за пределами круга.');

 

end.

Результаты программы:

 

 


Задание 3.

Запросить имя пользователя и напечатать «Привет, Вася!» 10 раз, если Вася – имя пользователя.

 

program vasja;

uses crt;

var

name:string[20];

i:integer;

begin clrscr;

write('Введите ваше имя: ');

readln(name);

i:=1;

 

repeat

writeln(i,'Привет, ',name);

i:=i+1;

until i>10;

readln;

end.

 

Результат программы:

 

 

 


Задание 4.

Одномерный массив a задается пользователем. Сформируйте такой массив b, который содержит копию отрицательных элементов массива а.

 

Program mas;

uses crt;

const max=100;

var a,b:array[1..max] of integer;

n,i,k:byte;

begin

clrscr;

randomize;

repeat

write('Размер массива A n=');

readln(n);

until n in [1..max];

writeln('Исходный массив:');

k:=0;

for i:=1 to n do

begin

a[i]:=random(100)-50;

write(a[i]:4);

if a[i]<0 then

begin

k:=k+1;

b[k]:=a[i];

end;

end;

writeln;

writeln;

if k=0 then write('В массиве А нет положительных элементов!')

else

begin

writeln('Массив В отрицательных чисел:');

for i:=1 to k do

write(b[i]:5);

end;

readln

 

end.

 

Результат программы:

 

Задание 5.

Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях.

14. . При x = 12.3´10-1, y = 15.4, z = 0.252´103: 82.825623.

 

#include "pch.h"

#include <iostream>

#include<stdio.h>

#include <cmath>

 

int main()

{

float x, y, z, g; // описание действительных переменных

 

 

printf(" x = "); // вывод подсказки

scanf_s("%e", &x); // ввод x

printf(" y = ");

scanf_s("%e", &y); // ввод y

printf(" z = ");

scanf_s("%e", &z); // ввод z

// расчет g

g = pow(y,x+1) / (pow(fabs(y-2),1/3.)+3);

g += (x + y / 2) / 2 / fabs(x + y)*pow(x + 1, -1 / sin(z));

 

printf("\n g = %10.6f\n", g); // вывод g на экран

system("pause"); // задержка экрана

 

}

 

Результат программы:

 

 


 

Задание 6.

 

Вычислить значение y в зависимости от выбранной функции j(x), аргумент которой определяется из поставленного условия.

Возможные значения функции j(x): 2 x, x 2, х /3 задаются пользователем с клавиатуры.

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

, где

 

#include "pch.h"

#include <iostream>

#include <cmath>

#include <stdio.h>

 

 

int main()

{

 

float a, b, z, x, y; // описание действительных переменных

int k;

 

setlocale(LC_CTYPE, "rus"); // поддержка русских букв в консоли

 

printf(" a = "); // вывод подсказки

scanf_s("%e", &a); // ввод a

printf(" b = "); // вывод подсказки

scanf_s("%e", &b); // ввод b

printf(" z = "); // вывод подсказки

scanf_s("\n%e", &z); // ввод z

printf(" 1) f(x)=2x\n");

printf(" 2) f(x)=x^2\n");

printf(" 3) f(x)=x/3\n");

 

 

printf(" Введите номер функции f(x) = "); // ввод номера функции

scanf_s("%d", &k);

 

 

if (z < 1) // вычисление х

{

x = 2 + z;

printf(" z<1 x = 2+z = %4.1f\n",x);

}

 

 

else

{

x = sin(z)*sin(z);

printf(" z>=1 x = sin(z)^2 = %4.1f\n",x);

}

 

 

if (k==1) // вычисление у с первой функцией

{

y = (2 * a * 2*x + b * cos(sqrt(fabs(x)))) / (x*x + 5);

printf(" f(x) = 2x y= %9.5f\n",y);

}

 

if (k == 2) // вычисление у со второй функцией

{

y = (2 * a * x*x + b * cos(sqrt(fabs(x)))) / (x*x + 5);

printf(" f(x) = x^2 y = %9.5f\n", y);

}

 

if (k == 3) // вычисление у с третьей функцией

{

y = (2 * a * x/3. + b * cos(sqrt(fabs(x)))) / (x*x + 5);

printf(" f(x) = x/3 y = %9.5f\n", y);

}

 

if ((k<1)||(k>3))

printf(" Функция f(x) не определена.\n");

 

 

system("pause");

}

 

 

Результаты программы:

 



Задание 7.

 

Функция Y(x) представляет собой функцию гиперболический синус sh(x). Функция S(x) – первые n членов разложени гиперболического синуса в ряд. При увеличении значеня n S(x)® Y(x).

Для упрощения расчетов получим реккурентную формулу для элементов ряда

 

#include "pch.h"

#include <iostream>

#include <cmath>

#include <stdio.h>

 

int main()

{

float a, b, h, x, S, Y; // описание действительных переменных

float ak;

int n;

 

printf(" a = "); // вывод подсказки

scanf_s("%e", &a); // ввод a

printf(" b = "); // вывод подсказки

scanf_s("%e", &b); // ввод b

printf(" h = "); // вывод подсказки

scanf_s("%e", &h); // ввод h

printf(" n = "); // вывод подсказки

scanf_s("%d", &n); // ввод n

 

printf(" x Y(x) S(x) |Y(x)-S(x)|\n");

x = a;

while (x <= b + h / 10) // цикл по х

{

S = ak = x;

for (int k=0; k<n; k++) // цикл по элементам ряда

{

ak *= x * x/(2 * k + 2) / (2 * k + 3);

S += ak; // подсчет суммы ряда

}

Y = (exp(x) - exp(-x)) / 2;

printf(" %4.1f %9.7f %9.7f %9.7f\n",x,Y,S,fabs(Y-S));

x += h;

 

}

system("pause");

}

Результат программы:

 

 


 


Задание 8.

 

Сумму элементов массива, расположенных между первым и последним нулевыми элементами.

 

#include "pch.h"

#include <iostream>

#include <stdio.h>

 

int main()

{

int Summa = 0; // сумма элементов

int k1, k2; // вспомогательные переменные

int i; // вспомогательные переменные

int n; // размер массива

int m; // число нулевых элементов в массиве

 

int a[20]; // описание массива а

 

setlocale(LC_CTYPE, "rus"); // поддержка русских букв в консоли

printf(" Введите число элементов массива n = ");

scanf_s("%d", &n);

 

// ввод массива с подсчетом нулевых элементов

m = 0;

printf(" Введите элементы массива.\n");

for (i = 0; i <= n - 1; i++)

{

printf(" a[%d] = ", i);

scanf_s("%d", &a[i]);

if (a[i] == 0) m++;

}

 

if (m < 2)

printf(" В массиве нет двух или более нулевых элементов.\n");

else

{

// находим номер первого нулевого элеллмента

k1 = 0;

while (a[k1]!= 0) k1++;

 

// находим номер последнего нулевого элеллмента

for (i = 0; i <= n - 1; i++)

if (a[i] == 0) k2 = i;

 

// поддсчет суммы элементов между первым и последним нулевыми элементами

for (i = k1; i <= k2; i++)

Summa += a[i];

 

printf(" Номер первого нулевого элемента = %d\n", k1);

printf(" Номер последнего нулевого элемента = %d\n", k2);

if (k2==k1+1)

printf(" Нулевые элементы расположены рядом.\n");

else

printf(" Сумма = %d\n", Summa);

}

 

system("pause");

 

}

 

Результаты программы:

 

 

 

 


 


Задание 9.

 

В матрице размером N ´ M поменять местами строку, содержащую элемент с наибольшим значением со строкой, содержащей элемент с наименьшим значением.

 

#include <iostream>

#include <ctime>

using namespace std;

 

int main()

{

setlocale(LC_ALL,"rus");

srand(time(0));

int arr1[3][3];

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

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

arr1[i][j]=rand()%100;

cout<<"Исходный массив: "<<endl;

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

{

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

cout<<arr1[i][j]<<" ";

cout<<endl;

}

int max,rowMax=0;

int min,rowMin=0;

max=arr1[0][0];

min=arr1[0][0];

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

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

{

if(max<arr1[i][j])

{

max=arr1[i][j];

rowMax=i;

}

if(min>arr1[i][j])

{

min=arr1[i][j];

rowMin=i;

}

}

int temp;

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

{

temp=arr1[rowMax][i];

arr1[rowMax][i]=arr1[rowMin][i];

arr1[rowMin][i]=temp;

}

cout<<"Массив после замены строк: "<<endl;

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

{

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

cout<<arr1[i][j]<<" ";

cout<<endl;

}

system("pause");

return 0;

}

 

Результат программы:

 

 


Задание 10.

 

В строке, состоящей из групп нулей и единиц, найти и вывести на экран самую короткую группу.

 

#include <stdio.h>

#include <stdlib.h>

 

int main(int argc, char* argv[])

{

char str[256] = "000011111000011100000111111100000111111110000001111111\0";

 

int max = 256, max_pos = 0;

for (int i = 0; str[i]!= '\0'; i++)

{

int k = i;

while (str[i] == str[i+1] &&

str[i]!= '\0') i++;

 

int len = abs((k+1)-i);

if (len < max) { max = len; max_pos = k; }

}

 

printf("str = %s\nmax_pos = %d max_len = %d\n",str,max_pos,max);

 

return 0;

}

 

Результат программы:

 

 

 


Список используемых источников

 

1. Березин Б. И., Березин С. Б. Начальный курс C++. – М.: ДИАЛОГ-МИФИ, 2003. – 288 с.

2. Основы алгоритмизации и программирования. Язык Си: учеб. пособие М. П. Батура (и др.) / – Минск: БГУИР, 2007.

3. Павловская, Т. А. С/С++. Программирование на языке высокого уровня Павловская Т. А. – СПб.: Питер, 2004.

 

 

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-04-01 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: