2016-10-11 6 views
-2

Imaginez - il y a une maison avec 80 appartements. Il a 4 étages et 5 blocs. Chaque bloc a 4 appartements. L'utilisateur est invité à saisir un nombre à plat et le programme Pascal est supposé calculer et sortir un nombre à plat. Cela doit être calculé en utilisant une sorte de formule. Le seul conseil que j'ai est que je dois utiliser les opérations div et mod.Trouvez le numéro de bloc et l'étage par numéro d'appartement

Voici comment la maison ressemble - enter image description here

Jusqu'à présent, j'ai créé le programme, qui boucle à travers les 80 appartements et après chaque 16 appartements augmente la valeur de bloc et après chaque 4 blocs augmente escalier.

Ceci est mon code:

program project1; 
var 
    i, floors, blocks, flats, flat, block, floor, blockCounter, floorCounter : integer; 
begin 
    floors := 4; 
    blocks := 5; 
    flats := 80; 

    while true do 
    begin 
    write('Flat number: '); 
    read(flat); 

    block := 1; 
    floor := 1; 
    blockCounter := 0; 
    floorCounter := 0; 

    for i := 1 to 80 do 
    begin 
     blockCounter := blockCounter + 1; 
     floorCounter := floorCounter + 1; 
     if (floorCounter = 4) then 
     begin 
     floorCounter := 0; 
     floor := floor + 1; 
     end; 

     if (blockCounter > 16) then 
     begin 
     block := block + 1; 
     blockCounter := 0; 
     floorCounter := 0; 
     floor := 1; 
     end; 

     if (i = flat) then 
     begin 
     writeln('Flat nr. ', flat, ' is in ', floor, '. floor and in ', block, '. block!'); 
     end; 

    end; 
    end; 
end. 

Est-ce qu'il ya quelqu'un qui peut me aider?

+3

Les avez-vous étudiés? –

+4

Si vous avez étudié 'div' et' mod' et que vous savez ce qu'ils font, calculer le bloc et le plancher pour un nombre plat donné est réellement trivial et peut être réalisé avec deux instructions d'assignation simples. Travailler sur la façon de le faire arithmétiquement sur papier et ensuite le code. Puisque c'est évidemment le devoir, je vais vous laisser le découvrir. – MartynA

+0

indice: le nombre 16 est important. – Stuart

Répondre

1

J'ai enfin résolu mon problème moi-même. J'ai finalement compris comment div fonctionne, donc j'ai été capable de résoudre ce problème. Alors, où sont vos tentatives avec mod et div?

program Maja; 
var dzivoklis, kapnutelpa, stavs : integer; 
begin 

    while true do 
    begin 
    write('Ievadi dzivokla numuru: '); 
    read(dzivoklis); 

    kapnutelpa := ((dzivoklis - 1) div 16) + 1; 
    stavs := (((dzivoklis - 1) mod 16) div 4) + 1; 
    writeln('Kapnutelpa: ', kapnutelpa); 
    writeln('Stavs: ', stavs); 
    writeln(); 
    end; 

end.