- •Курсовая работа по технологии программирования
- •Постановка задачи
- •1.2 Программа решения задачи 1.1
- •1.3 Результат работы программы
- •1.4 Объяснение результатов
- •1.5 Программа решения задачи 1.2
- •1.6 Результат работы программы
- •Лабораторная работа №2 «Использование основных операторов языка Си»
- •2.1 Постановка задачи
- •2.2 Программа решения задачи
- •2.3 Результат работы программы
- •Лабораторная работа №3 «Вычисление функций с использованием их разложения в степенной ряд»
- •3.1 Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Лабораторная работа №4 «Работа с одномерными массивами»
- •4.1 Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Лабораторная работа №5 «Функции и массивы»
- •Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Лабораторная работа №6 «Строки»
- •Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Лабораторная работа №7.2 «Функции с переменным числом параметров»
- •Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Лабораторная работа №8 «Блоковый ввод-вывод»
- •Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Лабораторная работа №9 «Строковый ввод-вывод»
- •Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •11. Лабораторная работа №10 «Динамические массивы»
- •11. 1 Постановка задачи
- •2 Программа решения задачи
- •11.3 Результат работы программы
- •Лабораторная работа №11 «Информационные динамические структуры»
- •Постановка задачи
- •Программа решения задачи
- •12.3 Результат работы программы
Результат работы программы
Рис 4. Результат работы программы 3
Лабораторная работа №4 «Работа с одномерными массивами»
4.1 Постановка задачи
Сформировать одномерный массив целых чисел, используя датчик случайных чисел.
Распечатать полученный массив.
Удалить 5 первых элементы массива.
Добавить в конец массива 3 новых элемента.
Распечатать полученный массив.
Программа решения задачи
#include <vcl.h>
#pragma hdrstop
#include <conio.h>
#include <iostream.h>
#include <math.h>
#include <windows.h>
/* 1) Сформировать одномерный массив целых чисел, используя датчик случайных чисел.
2) Распечатать полученный массив.
3) Удалить 5 первых элементы массива.
4) Добавить в конец массива 3 новых элемента.
5) Распечатать полученный массив.
*/
#pragma argsused
char* Rus(const char* text);
int fill (int *a,int);
void newmas(int *a, int *anew, int, int);
int newel (int *anew,int);
int main(int argc, char* argv[])
{
const int N=100;
int a[N];
int p;
cout << Rus("Введите длину массива: ");
cin >> p;
cout << endl << Rus("Массив: ");
fill (a,p);
for (int i=0;i<p;i++) //Выводим массив
{
cout << a[i] << " ";
}
const int M=100;
int anew[M];
int pnew=p-2;
newmas(a, anew, p, pnew);
newel(anew,pnew);
cout << endl << endl << Rus("Новый массив: ");
for (int l=0;l<pnew;l++) //Выводим массив
{
cout << anew[l] << " ";
}
getch();
return 0;
}
int fill (int *a, int p1) //заполнение массива
{
for (int i=0;i<p1;i++)
a[i]=rand()%100;
}
void newmas(int *a, int *anew, int p1, int pnew1) //новый массив без первых 5-ти
{
int k=5;
for (int j=0;j<pnew1-3;j++)
{
anew[j]=a[k];
k++;
}
}
int newel (int *anew, int pnew1) //добавление новых 3-х
{
for (int z=pnew1-3;z<pnew1;z++)
anew[z]=rand()%100;
}
char bufrus[256];
char* Rus(const char* text)
{
CharToOem(text,bufrus);
return bufrus;
}
Результат работы программы
Рис. 5 Результат работы программы 4
Лабораторная работа №5 «Функции и массивы»
Постановка задачи
Написать функцию, проверяющую есть ли отрицательные элементы в указанной строке двумерного массива. Удалить из массива все строки с отрицательными элементами, удаленная строка заполняется 0 и переносится в конец массива.
Программа решения задачи
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#pragma hdrstop
/*10. Написать функцию, проверяющую есть ли отрицательные элементы в указанной строке двумерного массива.
Удалить из массива все строки с отрицательными элементами, уда-ленная строка заполняется 0 и переносится в конец мас-сива. */
#pragma argsused
char bufRus[256];
char* Rus(const char* text)
{
CharToOem(text, bufRus);
return bufRus;
}
void show(int**,int,int); // Функция вывода матрицы
void delzer(int**,int,int); // Функция для удаления строки
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
int strok,stolb,num,num1;
int **matr;
cout<<Rus("Введите размерность массива: ") << endl;
cout<<Rus(" количество строк: ");
cin>>strok;
cout<<Rus(" количество столбцов: ");
cin>>stolb;
matr=new int*[strok];
for(int i=0;i<strok;i++)
{
matr[i]=new int[stolb];
for(int j=0;j<stolb;j++)
matr[i][j]=rand()%401 - 30;
}
show(matr,strok,stolb); //выводим массив
delzer(matr,strok,stolb);
//удаляем дин. массив
for(int i=0;i<strok;i++)
delete matr[i];
delete [] matr;
getch();
return 0;
}
//функция вывода массива на экран
void show(int** matr,int strok,int stolb)
{
for(int i=0;i<strok;i++)
{
for(int k=0;k<stolb;k++)
cout<<matr[i][k]<<" ";
cout<<endl;
}
}
//функция для удаления строк с отр.элементами
void delzer(int** matr,int strok,int stolb)
{
int sch=0; //счетчик для количества строк с отр.эл.
for(int i=0;i<strok;i++)
{
for(int j=0;j<stolb;j++)
{
if(matr[i][j]<=0) //ищем отр.эл.
{
for(int l=0;l<stolb;l++) matr[i][l]=0; //в старом мапссиве заполняем эту строку нулями
j=stolb; //переходим к след.строке
sch++;
}
}
}
int strok2=strok-sch; //количество строк с неотр.эл.
int i1=0; //переменная для продвижения по строкам старого массива
int **matr2; //создаем новый массив
matr2=new int*[strok];
for(int i=0;i<strok;i++) matr2[i]=new int[stolb];
for(int i=0;i<strok2;i++) //копируем строки с числами
{
while (matr[i1][0]==0) i1++; //если начинается с нуля - пропускаем
for(int j=0;j<stolb;j++)
{
matr2[i][j]=matr[i1][j];
}
i1++; //переходим на след.строку в старом массиве
}
for (int i=strok2;i<strok;i++) //дозаполняем оставшиеся строки в новом массиве нулями
{
for (int j=0;j<stolb;j++)
matr2[i][j]=0;
}
cout<<endl;
show(matr2,strok,stolb); //выводим новый массив
}