М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Хаченок1337
Хаченок1337
14.08.2021 15:44 •  Информатика

В файле unit1.cpp напишите функцию int DeleteDuplicates(int r[], int n){
которая удаляет дубликатные значения из несортированного массива r длиной n.
Функция возвращает длину результирующего массива
//
/* УДАЛИТЬ ДУБЛИКАТЫ В НЕСОРТИРОВАННОМ МАССИВЕ */
#include
#pragma hdrstop

#include "Unit1.h"
//
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}

#define DIGIT 0
#define COMMA 2
#define DEFIS 3
#define BLANK 4
#define OTHER 5
//
static short SymClass(char z){
// для ParsePages
if(z>='0' && z<='9'){
return DIGIT;
}
if(z==','){
return COMMA;
}
if(z=='-'){
return DEFIS;
}
if(z==' '){
return BLANK;
}
return OTHER;
}

//
int StringToIntArray(AnsiString p, int *r){
int k,p1=-1,p2=-1;
char *s;
char buf[20];
short sClass;
int i=0; // номер символа набираемого числа
int n=0; // число страниц (текущая длина p)
int LastPunkt=-1; // последний символ из DEFIS или COMMA
// -1 значит никакого

if(p.IsEmpty()){
return 0;
}
for(s=p.c_str(); *s!='\0'; s++){
sClass=SymClass(*s);
switch(sClass){
case DIGIT:
buf[i++]=*s;
break;
case COMMA:
buf[i]='\0';
if(LastPunkt==-1 || LastPunkt==COMMA){
p1=atoi(buf);
r[n++]=p1;
}
if(LastPunkt==DEFIS){
p2=atoi(buf);
if(p1==-1 || p2==-1){
return -1;
}
if(p2 return -1;
}
for(k=p1;k<=p2;k++){
r[n++]=k;
}
p1=p2=-1;
}
i=0;
LastPunkt=COMMA;
break;
case DEFIS:
buf[i]='\0';
p1=atoi(buf);
p2=-1;
LastPunkt=DEFIS;
i=0;
break;
case BLANK:
break;
default:
return -1;
} // switch
}
buf[i]='\0';
if(LastPunkt==-1 || LastPunkt==COMMA){
p1=atoi(buf);
r[n++]=p1;
}
if(LastPunkt==DEFIS){
p2=atoi(buf);
if(p1==-1 || p2==-1){
return -1;
}
for(k=p1;k<=p2;k++){
r[n++]=k;
}
}
return n;
}

//Не удаляйте и не изменяйте эту строку
int DeleteDuplicates(int r[], int n){
// ФУНКЦИЯ, КОТОРУЮ ВЫ ДОЛЖНЫ НАПИСАТЬ
// удалить дубликатные значения из
// несортированного массива r длиной n.
// Функция возвращает длину результирующего массива
return n;
}
//Не удаляйте и не изменяйте эту строку

//
void __fastcall TForm1::btnClick(TObject *Sender){
int r[1024];
int n= StringToIntArray(edt1->Text, r);
int k=DeleteDuplicates(r,n);
AnsiString s="", Comma="";
for(int i=0; i s=s+Comma+r[i];
Comma=",";
}
edt2->Text=s;
}

👇
Открыть все ответы
Ответ:
Отрак
Отрак
14.08.2021

4. Раньше это называлось ПЗУ, "постоянное запоминающее устройство". Потом видов ПЗУ стало больше и стали называть каждое устройство по-своему. Во-первых, это локальные хранилища в компьютере: жесткие диски (HDD), либо SSD. Во-вторых, это внешние устройства, внешние накопители информации: также жесткие диски, флешки. Есть еще различные носители информации типа CD-ROM или дискет, но они сами не являются устройствами, устройства для считывания с них существуют отдельно. Есть и совсем специфические хранилища - хранилища на магнитных лентах, в них используются кассеты, типа магнитофонных. Не знаю, стоит ли их все упоминать, все они сейчас встречаются достаточно редко.

5. WIFI, Bluetooth, WiMax

4,5(68 оценок)
Ответ:
funtya77
funtya77
14.08.2021

pascal

Объяснение:

var

 a, b, c: real;

 rel: boolean;

begin

 Write('Введите стороны треугольника через пробел: ');

 ReadLn(a, b, c);

 if (a + b > c) and (a + c > b) and (b + c > a)

    and (a > 0) and (b > 0) and (c > 0) then

     begin

       WriteLn('Треугольник с указанными сторонами существует.');

       if (a + b + c) / 3 = a then

         begin

           WriteLn('Треугольник является равносторонним.');

           rel := true;

         end

         else if ((a + b) / 2 = a) or ((b + c) / 2 = b) or ((a + c) / 2 = a) then

         begin  

           WriteLn('Треугольник является равнобедренным.');

           rel := true;

         end;

       if (a*a + b*b = c*c) or (a*a + c*c = b*b) or (b*b + c*c = a*a) then

         begin

           WriteLn('Треугольник является прямоугольным.');      

           rel := true;

         end;

       if not(rel) then WriteLn('Треугольник является произвольным.');

    end

   else

      WriteLn('Треугольник с указанными сторонами не существует.');

end.

4,8(38 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ