Программирование на C/C++

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    362,04 Кб
  • Опубликовано:
    2013-03-14
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Программирование на C/C++















"Программирование на С/С++"

программирование модифицированный массив

Задание 1

Изучить теоретический материал, ответить на контрольные вопросы. Самостоятельно создать новое консольное приложение.

В функции Main() объявить 2 переменные типа string, 1 - типа int, 1 - типа double.

Ввести их значения с клавиатуры и рассчитать сумму и произведение арифметических переменных, сумму строк.

Решение

using System;System.Collections.Generic;System.Linq;System.Text;ConsoleApplication1

{Program

{void Main(string[] args)

{

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

//double myDouble;

// string myString;

// myDouble = Convert.ToDouble(Console.ReadLine());

// myString = "\" myDouble \"is";

// Console.WriteLine("{0} {1}", myString, myDouble);aaa;bbb;ccc;ddd;x;z;

.WriteLine("Задание: объявить 2 переменные типа string, 1 - типа int, 1 - типа double. Ввести их значения с клавиатуры и рассчитать сумму и произведение арифметических переменных, сумму строк.");

.WriteLine("Введите строку");= Console.ReadLine();.WriteLine("Введите еще одну строку");= Console.ReadLine();.WriteLine("Введите число");= Convert.ToInt32(Console.ReadLine());.WriteLine("Введите еще одно число");= Convert.ToDouble(Console.ReadLine());= ccc + Convert.ToInt32(ddd);= ccc * Convert.ToInt32(ddd);.WriteLine("сумма арифметических переменных = "+x);.WriteLine("произведение арифметических переменных = " + z);.WriteLine("сумма строковых переменных = " + aaa+bbb);

}

}

}

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

Рис.

Задание 2

. Ввести с клавиатуры границы диапазона n и N натуральных чисел (n<N). Из чисел, входящих в этот диапазон, необходимо напечатать только те, цифры которых являются соседними в натуральном ряду. Подсчитать количество этих чисел и определить, сколько среди них четных и нечетных.

Решение

using System;System.Collections.Generic;System.Linq;System.Text;ConsoleApplication1

{Program

{void Main(string[] args)

{x1, x2, a, b, s, w, v, z, x, size, step, count, count2, count3;.WriteLine("Введите границу начала ряда");= Convert.ToInt32(Console.ReadLine());.WriteLine("Введите границу конца ряда");= Convert.ToInt32(Console.ReadLine());= 0;= 0;i = x1;( ; i < x2 + 1; i++)

{:

// определяем разрядность числа size= 0;= i;(; w > 0; size++)

{= w / 10;

}

// оределяем степернь делителя= size;= 10;(v > 2)

{= v - 1;= step * 10;

}

// объявляем массив размером sizey = 0;[] A1 = new int[size];

// раскладываем число на фиры в массив(int j = 0; j < size - 1; j++)

{= i;:= s / step;[j + y] = a;= s % step;(b < 1)

{= i + (step/10);ewq;

}(b < 10)

{++;[j + y] = b;

}

{++;= b;= step / 10;qwe;

}

}

// проверяем отвечает ли массив заявленным требованиям= 0;= 0;(int d = 0; d < size; d++)

{= 1;(d == size-1)

{= 0;

}((A1[d] + 1) == A1[d+v])

{++;

}((A1[d] - 1) == A1[d + v])

{++;

}

}

// выводим на экран и ведм посчет количества count и четности count2(z == size - 1)

{++;(int n = 0; n < size; n++)

{.Write(A1[n]);

}(A1[size-1] % 2 == 0)

{++;

}.WriteLine();

}(x == size - 1)

{++;(int n = 0; n < size; n++)

{.Write(A1[n]);

}(A1[size-1] % 2 == 0)

{++;

}.WriteLine();

}

// выводим на экран данные о количестве и четности.WriteLine("Количество соседних чисел = {0}", count);.WriteLine("Из них четных = {0}", count2);= count - count2;.WriteLine("Из них нечетных = {0}", count3);.ReadLine();

}

}

}

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

Рис.

Задание 3

. Составить программу вычисления:


Действительные числа а, b и натуральное N задаюaтся пользователем программы.

Решение

System;System.Collections.Generic;System.Linq;System.Text;_444

{Program

{void Main(string[] args)

{a, b, i;N, h, F, s, FF, x;.WriteLine("Введите (a)");= Convert.ToInt32(Console.ReadLine());.WriteLine("Введите (b)");= Convert.ToInt32(Console.ReadLine());.WriteLine("Введите (N)");= Convert.ToDouble(Console.ReadLine());= (b - a) / N;= 0;(i = 1; i <= N; i++)

{= 1+(a-(i-0.5));= s * s;= (a + ((i - 0.5) * h)) / s;= FF + F;.WriteLine("F{1}= ({0})", F, i);.WriteLine();

}=FF* h;.WriteLine("(F1+F2+F3+...+FN)h = {0}", x);.ReadLine();

}

}

}

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

Рис.

Задание 4

3. Даны действительные числа . Составить программу вычисления суммы с точностью  и ее последнего слагаемого:

Решение

using System;System.Collections.Generic;System.Linq;System.Text;_333

{Program

{void Main(string[] args)

{x, e, k, a, b, w, v, sw, sx, f, g, i, ii, j, s, z, sum;.WriteLine("Введите X");= Convert.ToDouble(Console.ReadLine());.WriteLine("Введите Эпсилон");= Convert.ToDouble(Console.ReadLine());= 0;= -1;= 0;

{++;= 0;= w;( ; i < k; i++)

{= sw * w;

}= (2 * k) + 1;= 0;= x;( ; j < v-1; j++)

{= sx * x;

}= sw * sx;= k + 2;= g;= 1;(; ii < g; ii++)

{= f * ii;

}= f * ((2 * k) + 1);= a / b;= s;= sum+s;.WriteLine("[слагаемое]-({0})", s);

// Считатаем, что требуемая точность достигнута, если очередное

// слагаемое суммы оказалось по модулю меньше чем эпсилон= Math.Abs(z);

}(z > e);.WriteLine();.WriteLine("[последнее слагаемое]-({0})", s);.WriteLine("[Сумма]-({0})", sum);.ReadLine();

}

}

}

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

Рис.

Задание 5

. В одномерный массив размерности N ввести произвольные числа. Ввести число К. Если в исходном массиве чисел больше чем К, то массиве выполнить кольцевой сдвиг массива так, чтобы его первый максимальный элемент оказался на K-м месте (N и K заданы). Кольцевой сдвиг массива выполняется всеми его элементами так, что элементы «выталкиваемые» из массива в одну сторону занимают освободившиеся место с другой стороны. Если К больше или равно числу элементов в исходном массиве, то создать новый массив, добавив в начало исходного массива число К. Напечатать модифицированный массив.

Решение

using System;System.Collections.Generic;System.Linq;System.Text;_31

{Program

{void Main(string[] args)

{[] A1 = new int[9] {4, 3, 8, 12, 29, 2, 31, 25, 3};K, a, b, c, z, f;.WriteLine("Исходный массив");(int i = 0; i < A1.Length; i++)

{.Write(A1[i]+"\t");

}.WriteLine();.WriteLine("Введите (К)");=Convert.ToInt32(Console.ReadLine());

// если К меньше количества элементов в массиве то...(K < A1.Length)

{

// определяем первый максимальный элемент массива= 1;= A1[0];= 0;= 0;(int i = 0; i < A1.Length; i++)

{(i == A1.Length - 1)

{ c = 0; }= A1[i + c];(a < b)

{= b;= i + c + 1;

}

}

// выполняем крольцевой сдвиг массива

{= A1[A1.Length - 1];(int j = A1.Length - 1; j >= 1; j--)

{[j] = A1[j - 1];

}[0] = z;

}(A1[K - 1] != a);.WriteLine("Модифицированный массив");(int i = 0; i < A1.Length; i++)

}

}

// если К больше или равно количеству элементов в массиве то...

{[] A2 = new int[10];

// добавляем элемент в начало массива[0] = K;

// копируем элементы исходного массива(int i = 1; i < A2.Length; i++)

{[i] = A1[i - 1];

}.WriteLine("Модифицированный массив");(int i = 0; i < A2.Length; i++)

{.Write(A2[i] + "\t");

}

}.ReadLine();

}

}

}

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

Рис.

Задание 6

. Составить программу, которая получает матрицу Х размерностью m*n и и вектор А, размером m. Каждому элементу вектора поставлена в соответствие строка с тем же номером. Программа сортирует вектор А в порядке возрастания и формирует новую матрицу, расположив строки исходной матрицы в том же порядке, что и элементы вектора после сортировки.

Решение

using System;System.Collections.Generic;System.Linq;System.Text;_32

{Program

{void Main(string[] args)

{[,] matr;= new int[6, 6];[,] matr1;= new int[6, 6];[] vect;= new int[6];[] vect1;= new int[6];a, b, c, f, r, w;= (matr.Length / 6)-1;

// заполняем матрицу(int i = 0; i < matr.Length / 6; i++)

{(int j = 0; j < matr.Length / 6; j++)

{[i, j] = i*j;

}

}

// выводим матрицу на консоль.WriteLine("Исходная матрица");(int i = 0; i < matr.Length / 6; i++)

{(int j = 0; j < matr.Length / 6; j++)

{.Write(matr[i, j] + "\t");

}.WriteLine();

}

// вводим с клавиатуры элементы вектора(int i = 0; i < vect.Length; i++)

{.WriteLine("Введите очередной элемент вектора");[i] = Convert.ToInt32(Console.ReadLine());

}

// выводим на консоль вектор.WriteLine();.WriteLine("Исходный вектор");(int i = 0; i < vect.Length; i++)

{.WriteLine(vect[i]);

}.WriteLine();

// сортируем вектор по возростанию= 0;= 0;(int s = 0; s < vect.Length; s++)

{= 1;= vect[0];= 0;= 0;(int i = 0; i < vect.Length; i++)

{(i == vect.Length - 1)

{ c = 0; b = vect[vect.Length-1]; goto wer; }= vect[i + c];(a < b)

{= b;= i + c ;

}

}:[f] = 0;[s] = a;

// сопоставляем строки матрицы с элементами вектора через

// переменную f, хранящую индекс отсортированного значения вектора(int i = 0; i < matr1.Length / 6; i++)

{[r,i]= matr[i,f];

}-;

}.Reverse(vect1);

// выводим на экран отсортированный по возростанию вектор.WriteLine();.WriteLine("Отсортированный вектор");(int i = 0; i < vect1.Length; i++)

{.WriteLine(vect1[i]);

}

// выводим на экран полученную матрицу.WriteLine("Полученная матрица");(int i = 0; i < matr1.Length / 6; i++)

{(int j = 0; j < matr1.Length / 6; j++)

{.Write(matr1[i, j] + "\t");

}.WriteLine();

}.ReadLine();

}

}

}

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

Рис.

Задание 7

Описать структуру с именем STUDENT, содержащую следующие поля:

фамилия и инициалы;

факультет (тип - перечисление);

успеваемость (массив из пяти элементов).

Написать программу, выполняющую следующие действия:

заполнение данными массива, состоящего из восьми структур типа STUDENT;

упорядочение записей по возрастанию факультета и номера группы;

вывод записей в обратном порядке;

вывод на дисплей фамилий и номеров групп для всех студентов, имеющих оценки 3 и 4. Если таких записей нет, то вывести соответствующее сообщение

Решение

using System;System.Collections.Generic;System.Linq;System.Text;_4

{ff: byte

{

ФВЗО=1,

РТФ,

АФ,

ФАЭМ

}student

{string fio;ff fak;int n;int[] usp;

}Program

{void Main(string[] args)

{a;[] st = new student[8];[] oc = new int[5];:.WriteLine("\aВыберите действие \n(1)Заполнение массива\n(2)Упорядочивание записей по группе \n(3)Упорядочивание записей по факультету \n(4)Вывод записей в обратном порядке \n(5)Вывести имена студентов имеющих оценки 3 и 4 \n(6)Выход ");= Convert.ToInt32(Console.ReadLine());(a == 1)

{(int i = 0; i < st.Length; i++)

{.WriteLine("Введите Фамилию студента и инициалы");[i].fio = Console.ReadLine();.WriteLine("Выберите факультет \n (1)ФВЗО \n (2)РТФ \n (3)АФ \n (4)ФАЭМ");[i].fak = (ff)Convert.ToByte(Console.ReadLine());.WriteLine("Введите номер группы");[i].n = Convert.ToInt32(Console.ReadLine());.WriteLine("Введите успеваемость (пять оценок)");[i].usp = new int[5];(int j = 0; j < st[i].usp.Length; j++)

{[i].usp[j] = Convert.ToInt32(Console.ReadLine());

}

}(st);qwe;

}(a == 2)

{.WriteLine();.WriteLine("Упорядочивание записей по номеру группы");(ref st);(st);qwe;

}(a == 3)

{.WriteLine();.WriteLine("Упорядочивание записей по факультету");(ref st);(st);qwe;

}(a == 4)

{.WriteLine();.WriteLine("Вывод записей в обратном порядке");.Reverse(st);(st);qwe;

}(a == 5)

{.WriteLine();.WriteLine("Студенты, имеющие 3 и 4");(st);qwe;

}(a > 5)

{;

}

}void Sort(ref student[] A)

{[] B = A;(int i=0; i<B.Length; i++)

{(int j=i; j<B.Length; j++)

{(A[j].n.CompareTo(B[i].n) < 0)

{h;=B[i];[i]=B[j];[j]=h;

}

}

}(student a in B) ;

}void SortF(ref student[] A)

{[] B = A;(int i = 0; i < B.Length; i++)

{(int j = i; j < B.Length; j++)

{(A[j].fak.CompareTo(B[i].fak) < 0)

{h;= B[i];[i] = B[j];[j] = h;

}

}

}(student a in B) ;

}void Vyvod34(student[] A)

{g = 0;(int i = 0; i < A.Length; i++)

{[]B = A[i].usp;s=0;(int j=0; j<B.Length; j++)

{(B[j] == 3) { s++; g++;}(B[j] == 4) { s++; g++;}

}(s > 0)

{.WriteLine("\a{0}\t{1}", A[i].fio, A[i].n);

}

}(g == 0)

{.WriteLine(" отсутствуют");

}

}void Print(student[] A)

{.Write("\tФИО\t\tФакультет\tГруппа\tУспеваемость");.WriteLine();(int i = 0; i < A.Length; i++)

{.Write("{0}\t\t{1}\t\t{2}\t{3} {4} {5} {6} {7}", A[i].fio, A[i].fak, A[i].n, A[i].usp[0], A[i].usp[1], A[i].usp[2], A[i].usp[3], A[i].usp[4]);.WriteLine();

}

}

}

}

Вводим данные с клавиатуры


Рис.

Упорядочиваем по группе

Рис.

Упорядочиваем по факультету

Рис.

Выводим записи в обратном порядке

Рис.

Выводим имена и группы студентов, имеющих 3 м 4

Рис.

Задание 8

Текст состоит из предложений, разделенных точкой. Текст вводится с клавиатуры, его длина не превышает 1000 символов. Удалить из текста заданное слово. Слова разделены пробелами и знаками препинания.

Решение

using System;System.Collections.Generic;System.Linq;System.Text;_5

{Program

{void Main(string[] args)

{text, word;.WriteLine("Введите текст");= Console.ReadLine();.WriteLine("Введите слово");= Console.ReadLine();

// инициализируме массивы с разделителями[] sS = new char[] { ' ' };[] zp = new char[] { '.', ':', ';', ',', '?', '!', '\n', '\r' };

// Инициализируем массив строк на подстроки по разделителям[] result = text.Split(sS);[] newtext = new string[result.Length];(int i = 0; i < result.Length; i++)

{[] elem = result[i].Split(zp);

// сравниваем каждый элемент массива с word и если они не равны,

// то добавляем его в новый массив(elem[0] != word)

{[i] = result[i];

}

}

// выводим на экран результат(int i = 0; i < newtext.Length; i++)

{.Write("{0} ",newtext[i]);

}.ReadLine();

}

}

}

Результат работы

Рис.

Задание 9

Проверить, попадает ли заданная точка (x1, y1) в прямоугольник ABCD. Прямоугольник задается с помощью левого верхнего и правого нижнего углов. Спроектировать необходимые классы и составить тестирующую процедуру.

Решение

using System;System.Collections.Generic;System.Text;_66

{

// Опишем класс tetrtetr

{int koordX;int koordY;int koordA1;int koordA2;int koordB1;int koordB2;

// конструкторtetr()

{= 0;= 0;= 0;= 0;= 0;= 0;

}

// параметризованный конструкторtetr(int koordX, int koordY, int koordA1, int koordA2, int koordB1, int koordB2)

{.koordX = koordX;.koordY = koordY;.koordA1 = koordA1;.koordB1 = koordB1;.koordA2 = koordA2;.koordB2 = koordB2;

}

// метод для определения положения точкиvoid rez()

{(koordX <= koordA1 && koordY <= koordB2)

{(koordY >= koordB1 && koordX >= koordA2)

{.WriteLine("Точка в плоскости прямоугольника");

}{ Console.WriteLine("Точка НЕ попала в плоскость прямоугольника"); }

}{ Console.WriteLine("Точка НЕ попала в плоскость прямоугольника"); }

}void Main(string[] args)

// тестирующая процедура

{s=new tetr();.WriteLine("Введите координат прямоугольника ");.WriteLine("Координаты левого верхнего угла");.Write("X - ");.koordA1 = Convert.ToInt32(Console.ReadLine());.Write("Y - ");.koordB1 = Convert.ToInt32(Console.ReadLine());.WriteLine("Координаты правого нижнего угла");.Write("X - ");.koordA2 = Convert.ToInt32(Console.ReadLine());.Write("Y - ");.koordB2 = Convert.ToInt32(Console.ReadLine());.WriteLine("Введите координат точки ");.Write("X - ");.koordX = Convert.ToInt32(Console.ReadLine());.Write("Y - ");.koordY = Convert.ToInt32(Console.ReadLine());.rez();.ReadKey();

}

}

}

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


Рис.

Рис.


Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!