Power type is not assignable mod legends как исправить

Ошибка "expression is not assignable" C++ Решение и ответ на вопрос 2748080

Develor

0 / 0 / 0

Регистрация: 03.10.2020

Сообщений: 54

1

09.12.2020, 22:19. Показов 6872. Ответов 13

Метки нет (Все метки)


Не могу понять, почему выдает ошибку «expression is not assignable». Делаю такое задание:
«Написать программу решения задачи с помощью нескольких функций. Значение элементов массива вычислить в отдельной функции согласно формуле ai= i! . Полученный массив напечатать с помощью функции. Получить результат соответственно условию по использованию функции. Найти разность сумм элементов с четными и нечетными индексами.»

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
using namespace std;
 
 
int factorial(int N)
{
  int F = 1; 
  
  for(int i=1; i<=N; ++i)
  {
    F *= i;
  }
  return F;
}
int main() 
{
  const int n=10;
  int i;
  int arr[n];
  int even = 0;
  int odd = 0;
  for ( i=0; i<n; i++)
  {
    arr[i] = factorial(i);   
  }
  for ( i=0; i<n; i++)
  {
    cout<<arr<<" ";
  }
   {
    if (arr[i]%2 = 0)          //тут ошибка
    even = even + arr[i];
    else 
    odd = odd + arr[i];
   }
  return 0;
}

Миниатюры

Ошибка "expression is not assignable"
 

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



jugu

610 / 415 / 151

Регистрация: 11.01.2019

Сообщений: 1,746

09.12.2020, 22:27

2

C++
1
if (arr[i]%2 == 0)



0



0 / 0 / 0

Регистрация: 03.10.2020

Сообщений: 54

09.12.2020, 23:01

 [ТС]

3

Как найти разность сумм элементов с четными и нечетными индексами?



0



jugu

610 / 415 / 151

Регистрация: 11.01.2019

Сообщений: 1,746

09.12.2020, 23:09

4

Цитата
Сообщение от Develor
Посмотреть сообщение

Как найти разность сумм элементов с четными и нечетными индексами?

C++
1
2
3
int dif_sum = 0;
for (int i = 0; i < n; i += 2) dif_sum += arr[i];
for (int j = 1; j < n; j += 2) dif_sum -= arr[j];



0



0 / 0 / 0

Регистрация: 03.10.2020

Сообщений: 54

09.12.2020, 23:26

 [ТС]

5

Я дико извиняюсь, но в какую строку это вписать? Целый день сижу за этими лабораторными. Уже мозг плавится.



0



Вездепух

Эксперт CЭксперт С++

10436 / 5705 / 1553

Регистрация: 18.10.2014

Сообщений: 14,101

09.12.2020, 23:27

6

Цитата
Сообщение от Develor
Посмотреть сообщение

Как найти разность сумм элементов с четными и нечетными индексами?

1. Найти суммы.
2. Вычислить их разность.



0



610 / 415 / 151

Регистрация: 11.01.2019

Сообщений: 1,746

09.12.2020, 23:28

7

Цитата
Сообщение от Develor
Посмотреть сообщение

в какую строку это вписать?

Вместо строк 31-35.



0



Develor

0 / 0 / 0

Регистрация: 03.10.2020

Сообщений: 54

10.12.2020, 00:00

 [ТС]

8

Вместо чисел выдает такую беллиберду (см. скриншот). Как исправить? И правильно ли я вывел на печать полученную сумму и разность? Сомневаюсь.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <math.h>
using namespace std;
 
int factorial(int N)
{
  int F = 1; 
  for(int i=1; i<=N; ++i)
  {
    F *= i;
  }
  return F;
}
int main() 
{
  const int n=10;
  int i;
  int j;
  int arr[n];
  for ( i=0; i<n; i++)
  {
    arr[i] = factorial(i);   
  }
  for ( i=0; i<n; i++)
  {
    cout<<arr<<" ";
  }
   {
    int dif_sum = 0;
    for (int i = 0; i < n; i += 2) dif_sum += arr[i];
    for (int j = 1; j < n; j += 2) dif_sum -= arr[j];
    cout<<"nСумма:"<<i;
    cout<<"nРазность:"<<j;
   }
return 0;
}

Миниатюры

Ошибка "expression is not assignable"
 



0



jugu

610 / 415 / 151

Регистрация: 11.01.2019

Сообщений: 1,746

10.12.2020, 09:30

9

Цитата
Сообщение от Develor
Посмотреть сообщение

cout<<«nСумма:»<<i;

Замени на:

C++
1
cout<<"nСумма разностей:"<<dif_sum;

Добавлено через 50 секунд
Замени тип int на long long, т.к. факториал очень быстро растет.



0



0 / 0 / 0

Регистрация: 03.10.2020

Сообщений: 54

10.12.2020, 11:25

 [ТС]

10

Где именно заменить int на long long?



0



610 / 415 / 151

Регистрация: 11.01.2019

Сообщений: 1,746

10.12.2020, 11:52

11

Цитата
Сообщение от Develor
Посмотреть сообщение

Где именно заменить int на long long?

Строки 5, 7, 19 и 29.



0



0 / 0 / 0

Регистрация: 03.10.2020

Сообщений: 54

10.12.2020, 11:57

 [ТС]

12

Ничего не изменилось

Миниатюры

Ошибка "expression is not assignable"
 



0



jugu

610 / 415 / 151

Регистрация: 11.01.2019

Сообщений: 1,746

10.12.2020, 13:39

13

Лучший ответ Сообщение было отмечено Develor как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
using namespace std;
 
auto factorial(int N)
{
  unsigned long long F = 1ull;
  for(int i=2; i<=N; ++i)
  {
    F *= i;
  }
  return F;
}
 
int main()
{
  const int n=10;
  int i;
  unsigned long long arr[n];
  for ( i=0; i<n; i++)
  {
    arr[i] = factorial(i);
  }
  for ( i=0; i<n; i++)
  {
    cout<<arr[i]<<" ";
  }
   {
    long long dif_sum = 0ull;
    for (int i = 0; i < n; i += 2) dif_sum += arr[i];
    for (int j = 1; j < n; j += 2) dif_sum -= arr[j];
    cout<<"nРазность:"<<dif_sum;
   }
return 0;
}



1



0 / 0 / 0

Регистрация: 03.10.2020

Сообщений: 54

10.12.2020, 15:07

 [ТС]

14

Спасибо большое!



0



Я передаю событие onChange в качестве свойства компонента, но получаю ошибку типа данных.

Родительский компонент —

const onChangeStatus=(selectType:string , e:React.ChangeEvent<HTMLSelectElement>) => {
        const { options } = e.target;
        console.log(options)
    }

<GlobalSearchAssignmentFilter
                    onChangeAssignmentStatus={onChangeStatus}
                />

Дочерний компонент — я определил интерфейс вроде

interface A {
    onChangeAssignmentStatus: (
        selectType: string,
        event:React.ChangeEvent<HTMLInputElement>
    ) => void;
}

Код компонента — <Выбрать несколько собственных onChange = {(event: React.ChangeEvent): void => onChangeAssignmentStatus (ASSIGNMENT_STATUS_PROPERTY, event)} inputProps = {{id: ‘select-multiple-native’,}}> {assignmentFilterData.assignmentDispositions. map ((item: any) => ({item.key}))}

Я импортирую множественный выбор Select from Material UI. Я получаю сообщение об ошибке при передаче события onChangeAssignmentStatus дочернему компоненту. Ошибка —

Type '(selectType: string, e: React.ChangeEvent<HTMLSelectElement>) => void' is not assignable to type '(selectType: string, event: ChangeEvent<HTMLInputElement>) => void'.
  Types of parameters 'e' and 'event' are incompatible.
    Type 'ChangeEvent<HTMLInputElement>' is not assignable to type 'ChangeEvent<HTMLSelectElement>'.
      Type 'HTMLInputElement' is missing the following properties from type 'HTMLSelectElement': length, options, selectedIndex, selectedOptions, and 3 more. 

Как я могу исправить эту ошибку?

1 ответ

Лучший ответ

В вашей функции onChangeStatus вы ожидаете, что e будет иметь тип React.ChangeEvent<HTMLSelectElement>.

Однако в вашем interface A вы устанавливаете тип event на React.ChangeEvent<HTMLInputElement>.

Эти два типа не совпадают, поэтому возникает ошибка.

Если вы хотите исправить ошибку, измените параметр e в функции onChangeStatus так, чтобы он имел тип React.ChangeEvent<HTMLInputElement> следующим образом:

const onChangeStatus=(selectType:string , e:React.ChangeEvent<HTMLInputElement>) => {
        const { options } = e.target;
        console.log(options)
}

Или измените свой interface A так, чтобы параметр event функции onChangeAssignmentStatus имел тип React.ChangeEvent<HTMLSelectElement> следующим образом:

interface A {
    onChangeAssignmentStatus: (
        selectType: string,
        event:React.ChangeEvent<HTMLSelectElement>
    ) => void;
}

Кроме того, вы можете установить тип onChangeStatus в соответствии с типом в interface A. Таким образом машинописный текст сообщает вам, какого именно типа должны быть параметры. Если вы хотите сделать это, вы можете получить доступ к типу onChangeAssignmentStatus с помощью A['onChangeAssignmentStatus'].


1

LukeZz
2 Ноя 2020 в 16:42

Игроки «Наследие Хогвартса» находят странные случаи, когда их персонаж становится полностью синим без возможности исправить. Однако есть решение, и наше руководство покажет вам, как изменить вашего синего персонажа в Hogwarts Legacy.

Игра о Гарри Поттере, которую так жаждали давние фанаты, наконец-то здесь, и феерия открытого мира Hogwarts Legacy позволяет игрокам воплотить в жизнь свои самые большие желания в волшебном мире .

От летающих метел до создания зелий — все удивительные элементы мира Гарри Поттера можно найти в «Наследии Хогвартса». Avalanche Studios также дает игрокам большую свободу настраивать своего волшебника или ведьму так, как они считают нужным, но создание их персонажа полностью синим, вероятно, не является преднамеренным.

Статья продолжается после объявления

Если эта проблема возникает у вас и вы хотите знать, как ее решить, у нас есть решение, которое должно облегчить ваши проблемы.

Они должны быть синими? так запутался pic.twitter.com/4s3GDEFCjO

— AD 9ine (@9ine_ad) 6 февраля 2023 г.

Наследие Хогвартса исправление синего символа

Очень просто, если вы хотите продолжить свои приключения в Наследии Хогвартса без синего аватара, вам нужно переключить параметр. Вам необходимо отключить «Высококонтрастный игровой процесс»., который является опцией специальных возможностей, чтобы предотвратить это.

Настройки специальных возможностей становятся все более и более распространенными в современных играх, чтобы по праву быть доступным для всех геймеров, которым нужны определенные функции, чтобы иметь возможность в полной мере насладиться игрой.

Статья продолжается после объявления

В Hogwarts Legacy есть множество настроек специальных возможностей, а High Contrast — полезная функция, которая позволяет игрокам лучше отличать своего персонажа от остального фона, текста на экране и многого другого.

Подпишитесь на нашу рассылку, чтобы быть в курсе последних новостей о киберспорте, играх и многом другом.

Электронная почтаПодпишитесь

Вот краткое изложение того, как отключить этот параметр:

  1. Перейдите в меню Hogwarts Legacy.
  2. Найдите и щелкните параметр Настройки.
  3. Найдите Настройки специальных возможностей.
  4. Найдите High Contrast Gameplay и нажимайте на него, пока он не выключится.

Надеюсь, ваш созданный персонаж теперь должен выглядеть как обычно, если вам не нужно включать этот параметр.

На этом наше быстрое и простое руководство по синим персонажам Hogwarts Legacy завершается, и если вы хотите еще больше узнать об игре, у нас есть множество других руководств, которые вы можете посмотреть ниже:Статья продолжается после объявления

Какие классические персонажи Гарри Поттера представлены в «Наследии Хогвартса»? | Что такое виварий в «Наследии Хогвартса»? | Список трофеев «Наследие Хогвартса» | Наследие Хогвартса появится в Xbox Game Pass? | Как получить ездовое животное Thestral в Hogwarts Legacy | Актеры озвучивания «Наследие Хогвартса» для всех персонажей | Все подтвержденные маунты в «Наследии Хогвартса» | Будет ли Hogwarts Legacy в Steam Deck? | Как попасть в свой House & выбери свою палочку в Hogwarts Legacy | Все подтвержденные классы & профессора в «Наследии Хогвартса» | Можно ли играть в квиддич в «Наследии Хогвартса»? | Сколько длится «Наследие Хогвартса»? | Все звери из наследия Хогвартса

Seems that TypeScript fails with type inference, so I gave him the hint by

  • Introducing new type type Cols = { col1: string; col2: string };
  • Explicitly stating type for const columns: Column<Cols>[] = ...

Full working example is here:

import { useTable, TableOptions, Column } from "react-table";
import React from "react";

type Cols = { col1: string; col2: string };

export default function App() {
  const data = React.useMemo(
    (): Cols[] => [
      {
        col1: "Hello",
        col2: "World"
      },
      {
        col1: "react-table",
        col2: "rocks"
      },
      {
        col1: "whatever",
        col2: "you want"
      }
    ],
    []
  );

  const columns: Column<{ col1: string; col2: string }>[] = React.useMemo(
    () => [
      {
        Header: "Column 1",
        accessor: "col1" // accessor is the "key" in the data
      },
      {
        Header: "Column 2",
        accessor: "col2"
      }
    ],
    []
  );

  const options: TableOptions<{ col1: string; col2: string }> = {
    data,
    columns
  };

  const {
    getTableProps,
    getTableBodyProps,
    headerGroups,
    rows,
    prepareRow
  } = useTable(options);

  return (
    <table {...getTableProps()} style={{ border: "solid 1px blue" }}>
      <thead>
        {headerGroups.map((headerGroup) => (
          <tr {...headerGroup.getHeaderGroupProps()}>
            {headerGroup.headers.map((column) => (
              <th
                {...column.getHeaderProps()}
                style={{
                  borderBottom: "solid 3px red",
                  background: "aliceblue",
                  color: "black",
                  fontWeight: "bold"
                }}
              >
                {column.render("Header")}
              </th>
            ))}
          </tr>
        ))}
      </thead>
      <tbody {...getTableBodyProps()}>
        {rows.map((row) => {
          prepareRow(row);
          return (
            <tr {...row.getRowProps()}>
              {row.cells.map((cell) => {
                return (
                  <td
                    {...cell.getCellProps()}
                    style={{
                      padding: "10px",
                      border: "solid 1px gray",
                      background: "papayawhip"
                    }}
                  >
                    {cell.render("Cell")}
                  </td>
                );
              })}
            </tr>
          );
        })}
      </tbody>
    </table>
  );
}

#angular

Вопрос:

я пытаюсь повлиять на атрибут набора из class.ts с помощью переменной в моем компоненте.ts ( угловой ), как это :

 this.UserPaiemet.setDate(this.DateN)
 

IDE показывает мне эти ошибки :

 Argument of type 'string | null' is not assignable to parameter of type 'String'.
  Type 'null' is not assignable to type 'String'.

131     this.UserPaiemet.setDate(this.DateN)
 

я не знаю, как я могу это исправить .

Мой класс:

 export class UserPaiemet
{
 private id!:Number;
 private date!:String;
 private nbrmois!:Number;
}
 

И мой компонентный метод

 date = new Date()
  DateN  = this.datePipe.transform(this.date, "yyyy-MM-dd")
  UserPaiemet= new UserPaiemet()
  updateUserPai()
  {
  this.UserPaiemet.setDate(this.DateN)
  }
 

Комментарии:

1. Можете ли вы включить this.dataPipe код? Машинопись жалуется , что это может вернуться null , и тогда вы не сможете передать это setDate .

2. это библиотека каналов из angular , я объявляю ее в конструкторе » private DatePipe: DatePipe »

3. Вам просто нужно обработать возможную null ценность, исходящую от datePipe.transform . С if помощью, например

Ответ №1:

Пожалуйста, используйте следующее соглашение для объявления типов, например.(Строка -> строка)

 export class UserPaiemet {
    private id!: number;
    private date!: string;
    private nbrmois!: number;
}
 

 date = new Date();
DateN = this.datePipe.transform(this.date, "yyyy-MM-dd") || ''; // or dummy date here
UserPaiemet = new UserPaiemet();
updateUserPai();
{
    this.UserPaiemet.setDate(this.DateN);
}
 

Комментарии:

1. Также может быть в вашем случае this.datePipe.transform возвращается значение null, вам нужно будет это обработать

Ответ №2:

попробуйте изменить свои типы данных на строчные

 export class UserPaiemet
{
 private id:number;
 private date:string;
 private nbrmois:number;
}
 

Комментарии:

1. по-прежнему ничего не меняется

Ответ №3:

В javascript «число» является примитивным типом, «Число» вместо этого является типом объекта. В качестве сравнения в Java int и Integer (int-это тип примитива, целое число вместо типа объекта), поэтому в вашем случае число не равно числу. Но в вашем случае проблема в другом: вы не можете присвоить строковому типу значение null или string. Вероятно, среда ide плохо распознает тип объекта, поэтому попробуйте записать его в нижнем регистре и выполнить его.

в противном случае попробуйте это:

 export class UserPaiemet
{
 private id:number;
 private date:string|null;
 private nbrmois:number;
} 

Понравилась статья? Поделить с друзьями:
  • Power sys error 00800
  • Power supply ошибка
  • Power supply surges detected during the previous power on как исправить
  • Power steering malfunction мерседес ошибка
  • Power steering faulty пежо 308 как устранить ошибку