Дополнительные задачи по лабораторной работе №14
Задача
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{ setlocale(LC_ALL,"Russian");
double z;
int n,num;
cout<< "Введите n:\n";
cin>> n;
do
{cout<< "Введите число:\n";
cin>> num;
int z=num/10;
printf("%d десяток\n", z);
}
while(num!=n);
return 0;
}
1. Написать программу ввода чисел последовательно до n. Проверять к какому десятку принадлежит. Например, введено число
21 – 3-ий десяток. После ввода каждого символа определять и выводить на экран.
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{ setlocale(LC_ALL,"Russian");
double z;
int n,y,i;
cout<< "Введите n:\n";
cin>> n;
printf ("Введите числа:\n");
for (i=1; i<=n; i++)
{cin>>y;
int z=y/10;
printf("%d десяток\n", z);
}
return 0;
}
Доп. Задача № 2,стр. 31
Напишите программу, которая будет определять размер для данных (int, char, long, double, short, unsigned, float) и выводить информацию (о размере данных) на экран.
#include <iostream>
using namespace std;
void main( void )
{
cout << "int = " <<sizeof(int) << endl;
cout << "char = "<<sizeof(char) << endl;
cout << "long = "<<sizeof(long) << endl;
cout << "double = " <<sizeof(double) << endl;
cout << "short = "<<sizeof(short) << endl;
cout << "unsigned = "<<sizeof(unsigned) << endl;
cout << "float = "<<sizeof(float) << endl;
}
1. Написать программу, печатающую таблицу умножения для шестнадцатеричных чисел в диапазоне от 0 до F.
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
for(int i=1; i<=15;++i)
{
for(int j=1;j<=15;++j)
cout <<setw(2)<<hex<<i*j<<" ";
cout << endl;
}
}
Дополнительные задачи по лабораторной работе №14.
Задача №14, с 21.
(8б) Написать программу подсчета количества пар элементов прямоугольной матрицы, удовлетворяющих условию Аij = - Аji. Вывести на экран эти пары и их индексы. Заполнение матрицы происходит случайным образом.
#include<iostream>
int main ()
#define N 5
#define M 5
{
setlocale (LC_CTYPE, "Russian");
int a[N][M], i, j, t=0;
for (i=0; i<N; i++)
{
for (j=0; j<M; j++)
{
a[i][j]=rand()%21+(-10);
}
}
printf ("Полученнаяматрица:\n" );
for (i=0; i<N; i++)
{
for (j=0; j<M; j++)
printf (" %d ", a[i][j]);
printf ("\n");
}
printf ("\n");
for (i=0; i<N; i++)
{
for (j=0; j<M; j++)
{
if (a[i][j]==-a[j][i])
{
if (i>j)
{
printf (" a[%d][%d]=-a[%d][%d]\n", i, j, j, i);
printf (" Пара: %d %d \n",a[i][j], a[j][i]);
t=t+1;
}
}
}
}
printf ("Количество пар: %d", t);
if (t==0)
printf (" Таких элементов нет \n");
}
Задача №20, с. 22.
(9б) Написать программу заполнения матрицы случайным образом. Переставляя ее строки и столбцы, добиться, чтобы элемент с минимальным значением находился в нижнем правом углу этой матрицы. Результатвывестинаэкран.
#include<iostream>
int main ()
#define N 3
#define M 3
{
setlocale (LC_CTYPE, "Russian");
int a[N][M], i, j, min=100,k,n;
for (i=0; i<N; i++)
{
for (j=0; j<M; j++)
{
a[i][j]=rand()%21+(-10);
}
}
printf ("Полученнаяматрица:\n" );
for (i=0; i<N; i++)
{
for (j=0; j<M; j++)
printf (" %d ", a[i][j]);
printf ("\n");
}
printf ("\n");
for (i=0; i<N; i++)
{
for (j=0; j<M; j++)
{
if (a[i][j]<min)
{min=a[i][j];
k=i;
n=j;}
}
}
printf ("Min: %d ",min);
printf ("\n");
printf ("\n");
a[k][n]=a[N-1][M-1];
a[N-1][M-1]=min;
for (i=0; i<N; i++)
{
for (j=0; j<M; j++)
{
printf (" %d ", a[i][j]);
}
printf ("\n");
}
}
Задача (доп к 6 лабе)
8.Написать программу нахождения суммы первых n натуральных чисел, которые делятся на 5. С клавиатуры ввести n. На экран вывести эти натуральные числа и их сумму.
#include<iostream>
using namespace std;
#include <stdio.h>
void main (void)
{
int n,a,z,sum=0;
printf ("Vvedite n\n");
cin >>n;
a=0;
while(a<=n)
{
if(a%5==0)
{a=z;
cout << z<<endl;
sum=sum+z;
a++;
}
else
{a++;
}
}
cout<<sum;
}
1. (6б) Написать программу размещения элементов заданного вектора в обратном порядке (без использования дополнительного массива). Массив заполняется пользователем с клавиатуры.
(9б) Пусть имеется упорядоченный по возрастанию массив А. Написать функцию, возвращающую номер элемента массива, имеющего заданное значение b или 0, если такого элемента нет. Использовать метод двоичного (бинарного) поиска: сравнить b со средним элементом массива; если числа равны, поиск завершается, если b меньше среднего элемента, то b надо искать в левой половине, а иначе – в правой; к выбранной половине применяется тот же алгоритм.
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
const int size_mas = 10;
int mas[size_mas] = {2, 5, 6, 8, 9, 11, 13, 14, 16, 21 };
cout << "массив[" << size_mas << "] = { ";
for (int i = 0;i< size_mas; i++)
{
cout << mas[i] << " ";
}
cout << " }"<<endl;
int mid = 0,
low = 0,
top= size_mas-1,
b;
cout<<"Введите число\n";
cin>>b;
while (low< top)
{mid = low + (top- low) / 2;
if(b<=mas[mid])
top=mid;
else low=mid+1;
}
if (mas[top] == b)
cout << "\nЗначение найдено " << "под индексом " << top<< endl;
else
cout << "\n 0" << endl;
return 0;
}
Написать программу нахождения суммы первых n натуральных чисел, которые делятся на 5. С клавиатуры ввести n. На экран вывести эти натуральные числа и их сумму.
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{ setlocale(LC_ALL,"Russian");
int n,num=0,sum=0,i;
cout<< "Введите n:\n";
cin>> n;
i=5;
do
{cout<<i<<endl;
sum=sum+i;
i=i+5;
num++; }
while(num!=n);
cout<<sum;
return 0;
}
(6б) В заданной квадратной матрице элементы заданного столбца заменить элементами заданного строки. Массив заполняется пользователем с клавиатуры. Номер строки и номер столбца также вводится пользователем с клавиатуры. Результат вывести на экран.
#include <stdio.h>
#include <locale>
#include <iostream>
const int n=3;
void main ()
{ setlocale (LC_CTYPE, "Russian");
int arr[n][n], *p, i=0, j=0, str, stl, b, k=0;
p=&arr[0][0];
printf ("Введите массив\n");
for (i=0; i<n; i++)
{for (j=0; j<n; j++, p++)
{scanf ("%d", p);
}}
p=&arr[0][0];
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
{printf("%d ",*p);
p++;}
printf("\n");
}
printf ("Введите строку\n");
scanf ("%d", &str);
printf ("Введите столбец\n");
scanf ("%d", &stl);
for (k=0; k<n; k++)
{
b=*(*(arr+(str-1))+k);
*(*(arr+(str-1))+k)=*(*(arr+k)+(stl-1));
*(*(arr+k)+(stl-1))=b;
}
p=&arr[0][0];
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
{printf("%d ",*p);
p++;}
printf("\n");
}
}