В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
кот931
кот931
03.01.2023 05:54 •  Информатика

Информатика не могу найти program n_15;
var i: integer; x: real;
begin
writeln ('График тренировок');
i:=1;
x:=10;
repeat
i:=i+1;
x:=x+0.1*x;
until x>=25;
writeln ('Начиная с ', i, '-го дня спортсмен будет пробегать 25 км')

Показать ответ
Ответ:
muraitovaayana2
muraitovaayana2
30.09.2021 00:41

Сортировал массив пузырьком (сравнивал первый символ в названии магазина).

Пробегался циклом через массив и функцией strcmp, сравнивал названия магазинов и строку с названием того магазина, который мы ищем.

Если вкратце, strcmp возвращает нам -1 когда строка которая передаётся в качестве первого параметра больше, 0 когда они равны (по содержимому тоже), и 1 если строка которая передаётся 2 параметром больше.

Вот мой вариант:

#include <stdio.h>

#include <string.h>

#include <ctype.h>

#include <windows.h>

template <typename T>

struct PRICE

{

   char prod_name[20];

   char shop_name[20];

   T price;

};

template <typename T>

void sortByShop(PRICE<T>* arr, int size)

{

   PRICE<T> tmp;

   bool check=true;

   while(check)

   {

       check=false;

       for(int i=0; i < size-1; ++i)

       {

           if(toupper(arr[i].shop_name[0])>toupper(arr[i+1].shop_name[0]))

           {

               tmp = arr[i];

               arr[i]=arr[i+1];

               arr[i+1]=tmp;

               check=true;

           }

       }

   }

}

template <typename T>

void show(PRICE<T>* arr, int size)

{

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

   {

       printf("\nshop name -> %s\n",arr[i].shop_name);

       printf("poduct name -> %s\n",arr[i].prod_name);

       printf("poduct price -> %d\n",arr[i].price);

   }

}

int main()

{

   const int size = 5;

   PRICE<double> arr[size];

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

   {

       printf("Enter shop name -> ");

       scanf("%s",&arr[i].shop_name);

       printf("Enter poduct name -> ");

       scanf("%s",&arr[i].prod_name);

       printf("Enter poduct price -> ");

       scanf("%d",&arr[i].price);

   }

   show(arr,size);

   sortByShop(arr,size);

   printf("\nSorted array.\n");

   show(arr,size);

   char target[20];

   printf("Enter shop name -> ");

   scanf("%s",&target);

   bool check=false;

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

   {

       if(strcmp(arr[i].shop_name,target)==0)

       {

           printf("\nFounded products:\n");

           printf("poduct name -> %s\n",arr[i].prod_name);

           check=true;

       }

   }

   if(!check) printf("Shop is not founded.\n");

   system("pause");

}

0,0(0 оценок)
Ответ:
Zoolog851
Zoolog851
30.09.2021 00:41

Сортировал массив пузырьком (сравнивал первый символ в названии магазина).

Пробегался циклом через массив и функцией strcmp, сравнивал названия магазинов и строку с названием того магазина, который мы ищем.

Если вкратце, strcmp возвращает нам -1 когда строка которая передаётся в качестве первого параметра больше, 0 когда они равны (по содержимому тоже), и 1 если строка которая передаётся 2 параметром больше.

Вот мой вариант:

#include <stdio.h>

#include <string.h>

#include <ctype.h>

#include <windows.h>

template <typename T>

struct PRICE

{

   char prod_name[20];

   char shop_name[20];

   T price;

};

template <typename T>

void sortByShop(PRICE<T>* arr, int size)

{

   PRICE<T> tmp;

   bool check=true;

   while(check)

   {

       check=false;

       for(int i=0; i < size-1; ++i)

       {

           if(toupper(arr[i].shop_name[0])>toupper(arr[i+1].shop_name[0]))

           {

               tmp = arr[i];

               arr[i]=arr[i+1];

               arr[i+1]=tmp;

               check=true;

           }

       }

   }

}

template <typename T>

void show(PRICE<T>* arr, int size)

{

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

   {

       printf("\nshop name -> %s\n",arr[i].shop_name);

       printf("poduct name -> %s\n",arr[i].prod_name);

       printf("poduct price -> %d\n",arr[i].price);

   }

}

int main()

{

   const int size = 5;

   PRICE<double> arr[size];

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

   {

       printf("Enter shop name -> ");

       scanf("%s",&arr[i].shop_name);

       printf("Enter poduct name -> ");

       scanf("%s",&arr[i].prod_name);

       printf("Enter poduct price -> ");

       scanf("%d",&arr[i].price);

   }

   show(arr,size);

   sortByShop(arr,size);

   printf("\nSorted array.\n");

   show(arr,size);

   char target[20];

   printf("Enter shop name -> ");

   scanf("%s",&target);

   bool check=false;

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

   {

       if(strcmp(arr[i].shop_name,target)==0)

       {

           printf("\nFounded products:\n");

           printf("poduct name -> %s\n",arr[i].prod_name);

           check=true;

       }

   }

   if(!check) printf("Shop is not founded.\n");

   system("pause");

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота