20 svar
737 visningar
alex 269 – Fd. Medlem
Postad: 15 nov 2019 14:16

Ta bort ett värde av en vektor

Hej 

Hur kan man ta bort ett värde av en vektor?

tack för hjälpen

Laguna Online 30707
Postad: 15 nov 2019 14:34

Vad betyder "värde av en vektor"? Vad har du nu, och hur ska det se ut efteråt?

alex 269 – Fd. Medlem
Postad: 15 nov 2019 14:44

Jag har skapat ett program som be användare att skriva in sin ålder om hen åker bussen. Åldern ska läggas i en vektor.

Om användaren vill stiga av bussen. så jag behöver att ta bort ålder för passageraren från vektor, men jag vet inte hur kan man göra detta.

Laguna Online 30707
Postad: 15 nov 2019 15:30
alex skrev:

Jag har skapat ett program som be användare att skriva in sin ålder om hen åker bussen. Åldern ska läggas i en vektor.

Om användaren vill stiga av bussen. så jag behöver att ta bort ålder för passageraren från vektor, men jag vet inte hur kan man göra detta.

Hur lägger du in värdet i vektorn?

alex 269 – Fd. Medlem
Postad: 15 nov 2019 16:05

arr_age = new int[10];
                
                for (int i = 0; i < 10; i++)
                {
                    
                        Console.Write("ange din ålder  : ");

                         int x = Convert.ToInt32(Console.ReadLine());
                         passagerare[i]=x;

                }

Laguna Online 30707
Postad: 15 nov 2019 16:20

Hur vill du hantera att passagerare nummer 4 stiger av? Ska platsen vara tom, eller vill du numrera om dem så att 5 blir 4, ... 10 blir 9 och 10 blir tom?

alex 269 – Fd. Medlem
Postad: 15 nov 2019 16:32

Det är ju inte logisk, men jag tror det är enda lösning. 

Hur kodar man då(5 blir 4)?

Laguna Online 30707
Postad: 15 nov 2019 16:45
alex skrev:

Det är ju inte logisk, men jag tror det är enda lösning. 

Hur kodar man då(5 blir 4)?

Vill du att passagerare[4] ska få det värde som passagerare[5] hade?

Yngve 40559 – Livehjälpare
Postad: 15 nov 2019 17:14
alex skrev:

Det är ju inte logisk, men jag tror det är enda lösning. 

Hur kodar man då(5 blir 4)?

Nej det är inte enda lösningen.

Det går utmärkt att låta det bli luckor i vektorn (= tomma platser i bussen).

Men då gäller det att du antingen håller reda på dessa luckor eller att du varje gång du ska stoppa in ett tal letar reda på en lucka.

(= Antingen håller busschauffören reda på alla tomma platser i bussen och anvisar en plats till nypåstigna eller också får de själva leta reda på en ledig plats i bussen när de kliver på.)

alex 269 – Fd. Medlem
Postad: 15 nov 2019 17:49

Jag har börjat programmering 1 för tre veckar sedan så jag är inte så kunnig i detta fack. 

Hur Yngve, kan du förklara det de menar med kodar??

Tack

Laguna Online 30707
Postad: 15 nov 2019 18:53

Du får bestämma dig för vad du vill representera med din vektor. Är det viktigt att du vet i vilken ordning passagerarna steg på? Är det viktigt att man kan identifiera dem med nummer? Har de några andra egenskaper än sin ålder? Vad ska du göra med denna vektor när du har fyllt i den?

alex 269 – Fd. Medlem
Postad: 15 nov 2019 18:59

Jag vill den lösning där passagerare som åker bussen ska flytta sig fram en plats, vet du hur man kodar ?

Laguna Online 30707
Postad: 15 nov 2019 20:35
alex skrev:

Jag vill den lösning där passagerare som åker bussen ska flytta sig fram en plats, vet du hur man kodar ?

Jag frågade förut: Vill du att passagerare[4] ska få det värde som passagerare[5] hade?

alex 269 – Fd. Medlem
Postad: 16 nov 2019 10:33

Ja

Laguna Online 30707
Postad: 16 nov 2019 14:41
alex skrev:

Ja

Hur skriver du det som en programsats? 

alex 269 – Fd. Medlem
Postad: 18 nov 2019 12:31

Jag vet inte, hur?

Laguna Online 30707
Postad: 18 nov 2019 13:57
alex skrev:

Jag vet inte, hur?

passagerare[4]=passagerare[5];

Ganska likt det du redan har i din kod.

Nu får du generalisera lite så du flyttar alla passagerare som ska flyttas.

Yngve 40559 – Livehjälpare
Postad: 18 nov 2019 16:54 Redigerad: 18 nov 2019 17:30

Här får du lite tips på hur du skulle kunna lägga upp logiken.

Definiera och initiera variabler:

  • Definiera en vektor seat[] som kan lagra 10 st heltal. Denna vektor innehåller passagerarnas åldrar.
  • Definiera en heltalsvariabel firstFreeSeat som pekar ut den första lediga platsen. Initiera denna variabel till 0. När denna variabel har värdet 0 så är bussen tom, när variabeln har värdet 10 så är bussen full.
  • Definiera en heltalsvariabel age som kommer att innehålla åldern på passageraren som kliver på. 
  • Definiera en heltalsvariabel pos som kommer att användas för att flytta fram passagerare i bussen när någon kliver av.

Varje gång en passagerare vill kliva på bussen:

Om firstFreeSeat > 9 så skriv ut "Tyvärr, bussen är full", annars {

  • Läs in passagerarens ålder i age.
  • Lägg in detta värde på position ledigPlats i vektorn, dvs seat[firstFreeSeat] = age
  • Öka variabeln firstFreeSeat med 1.

}

Varje gång en passagerare vill kliva av bussen:

Om firstFreeSeat = 0 så skriv ut "Tyvärr, bussen är tom", annars {

Läs in platsen som ska lämnas i pos

Så länge som  pos < firstFreeSeat {

  • Sätt seat[pos] = seat[pos+1]
  • Öka variablen pos med 1.

}

Minska variabeln firstFreeSeat med 1

}

alex 269 – Fd. Medlem
Postad: 25 nov 2019 16:11

Kan du koda det du skrev?

Jag försökte många gånger men det gick inte.

Laguna Online 30707
Postad: 25 nov 2019 16:42

Visa den version av din kod som verkar bäst.

alex 269 – Fd. Medlem
Postad: 25 nov 2019 17:23

Console.writeline("skriv din ålder");

int ålder = Convert.ToInt32(Console.ReadLine());

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

{ if( array[i] == ålder )

{

array[i]=array[1+i]

}

}

på så sätt får jag två gånger av samma tal

det tas bort inte 

Svara
Close