Главная страница

Информатика. Для второй работы по информатике. Процедуры и функции


Скачать 35.29 Kb.
НазваниеПроцедуры и функции
АнкорИнформатика
Дата27.09.2022
Размер35.29 Kb.
Формат файлаdocx
Имя файлаДля второй работы по информатике.docx
ТипДокументы
#700491
страница2 из 2
1   2



#include

#include

using namespace std;
typedef vector vecf;

typedef vecf::iterator vecf_iter;

typedef vecf::const_iterator vecf_iter_c;

// ----------------------------------------------------------------------------

// Из положительныйх чисел двух вещественных массивов различной

// размерности сформировать общий массив. Найти наибольший элемент

// в сформированном массиве. Если таких элементов несколько,

// удалить их из массива. Создать функции для определения максимума

// и удаления элементов из массива.

// ----------------------------------------------------------------------------

double find_max( const vecf& merged )

{

// Находим наибольшее значение в сформированом массиве.

double max = -1.0;

for ( vecf_iter_c i = merged.begin(); i != merged.end(); i++ )

if ( *i > max )

max = *i;
return max;

}

// ----------------------------------------------------------------------------

void delete_duplicates( vecf& merged, const double& max )

{

// Подсчитаем количество наибольших значений.

int max_count = 0;

for ( vecf_iter i = merged.begin(); i != merged.end(); i++ )

{

if ( *i == max )

{

max_count++;

}

}
// Если максимальных элементов несколько - удалить их из массива.

if ( max_count > 1 )

{

vecf_iter i = merged.begin();

while ( i != merged.end() )

{

if ( *i == max )

{

// двигаемся к следующему после стертого.

i = merged.erase(i);

}

else

{

// двигаемся к следующему по порядку.

i++;

} // if ( *i == max )

} // while ( i != merged.end() )

}// if ( max_count > 1 )

}

// ----------------------------------------------------------------------------

int main( int argc, char* argv )

{

// Инициализируем первый массив.

vecf first;
first.push_back(1.0f);

first.push_back(2.1f);

// ... //

first.push_back(10.9f);
// Инициализируем второй массив.

vecf second;
second.push_back(3.3f);

second.push_back(6.1f);

// ... //

second.push_back(10.9f);

// Формируем общий массив.

vecf merged;
merged.insert( merged.end(), first.begin(), first.end() );

merged.insert( merged.end(), second.begin(), second.end() );
double max = find_max( merged );

delete_duplicates( merged, max );
// вывод всего, что насчитали.

cout << "Max element: " << max << "\n";

for ( vecf_iter i = merged.begin(); i != merged.end(); i++ )

cout << *i << "\n";
cout.flush();
getchar();

}

// ----------------------------------------------------------------------------

На основе данных входного файла составить список вкладчиков банка, включив следующие данные: ФИО, № счета, сумма, год открытия счета. Вывести в новый файл информацию о тех вкладчиках, которые открыли вклад в текущем году, отсортировав их по сумме вклада. После запуска выдает 3 ошибки

1>D:\Проекты Visual Studio C#\лаба 14\ConsoleApplication1\Vklad.cs(14,11,14,16): warning CS0660: 'ConsoleApplication1.Vklad' defines operator == or operator != but does not override Object.Equals(object o) 1>D:\Проекты Visual Studio C#\лаба 14\ConsoleApplication1\Vklad.cs(14,11,14,16): warning CS0661: 'ConsoleApplication1.Vklad' defines operator == or operator != but does not override Object.GetHashCode() 1>D:\Проекты Visual Studio C#\лаба 14\ConsoleApplication1\Vklad.cs(14,11,14,16): error CS0535: 'ConsoleApplication1.Vklad' does not implement interface member 'System.ICloneable.Clone()'

Листинг программы

Cкопировать

  1. using System;

  2. using System.Collections.Generic;

  3. using System.IO;

  4. using System.Linq;

  5. using System.Text;

  6. using System.Threading.Tasks;



  7. namespace ConsoleApplication1

  8. {

  9. class Program

  10. {

  11. static void Main(string[] args)

  12. {

  13.  

  14. StreamReader file = new StreamReader("input.txt");

  15.  

  16. Console.Write("Введите текущий год:");

  17. int now_year = int.Parse(Console.ReadLine());

  18. string s;

  19. int n = 0;

  20. while ((s = file.ReadLine()) != null)

  21. n++;

  22. file.Close();



  23. Vklad[] vk = new Vklad[n];

  24. StreamReader file2 = new StreamReader("input.txt");

  25. int i = 0;

  26. while((s=file2.ReadLine())!=null)

  27. {

  28. vk[i] = new Vklad(s);

  29. i++;

  30. }

  31. file2.Close();



  32. Array.Sort(vk);



  33. StreamWriter fileOut = new StreamWriter("output.txt");

  34. for (i = 0; i < n; i++)

  35. if (vk[i] == now_year)

  36. fileOut.WriteLine(vk[i].ToString());

  37. fileOut.Close();

  38. Console.Read();

  39. }

  40. }

  41. }

Листинг программы

Cкопировать

  1. using System;

  2. using System.Collections.Generic;

  3. using System.Linq;

  4. using System.Text;



  5. namespace ConsoleApplication1

  6. {



  7. class Vklad:IComparable

  8. {

  9. protected string name;

  10. protected string surname;

  11. protected string twoname;

  12. protected int number_vklad;

  13. protected int sum;

  14. protected int year;



  15. public Vklad(string s)

  16. {

  17. string[] mas = s.Split(' ');

  18. surname = mas[0];

  19. name = mas[1];

  20. twoname = mas[2];

  21. number_vklad = int.Parse(mas[3]);

  22. sum = int.Parse(mas[4]);

  23. year = int.Parse(mas[5]);



  24. }



  25. public int CompareTo(object obj)

  26. {

  27. Vklad b = (Vklad)obj;

  28. if (this.sum == b.sum) return 0;

  29. else if (this.sum > b.sum) return 1;

  30. else return -1;

  31. }



  32. public static bool operator <(Vklad a, int b)

  33. {

  34. return ((a.sum < b) ? true : false);

  35. }

  36. public static bool operator >(Vklad a, int b)

  37. {

  38. return ((a.sum > b) ? true : false);

  39. }

  40. public static bool operator ==(Vklad a, int b)

  41. {

  42. return ((a.sum == b) ? true : false);

  43. }

  44. public static bool operator !=(Vklad a, int b)

  45. {

  46. return ((a.sum != b) ? true : false);

  47. }



  48. public override string ToString()

  49. {

  50. return string.Format("{0} {1} {2} {3} {4} {5}", surname, name,twoname,number_vklad, sum,year);

  51. }

  52. }

  53. }


3 задание

#include

#include

#include

#include

using namespace std;

int main()

{ list box{ 12, 36, 41, 26, 18, 93, 55, 67, 34, 11, 45, 87 };

for (auto x : box) cout << x << ' ';

puts("");

auto [imin, imax] = minmax_element(box.begin(), box.end());

++imax; box.insert(imax, *imin);

for (auto x : box) cout << x << ' ';

puts("");

system("pause > nul"); }



1   2


написать администратору сайта