lunedì 14 ottobre 2013

Ripristinare il Microsoft Boot Manger


1.Inserisci il disco di installazione Windows 7 o 8
2.Clicca su "Ripristina il computer"
















    3. Risoluzione dei problemi
    4. Opzioni Avanzate

    5. Prompt dei comandi
    6. digitare Bootrec.exe /FixMbr

    Ripristinare il GRUB


    1. Inserisci il CD di Linux (Noi useremo Ubuntu e quindi il terminale di Gnome) e avvia la Live
    2. Apri il terminale (Ctrl+Alt+Canc) e digita  sudo su
    3. digita la password
    4. digita fdisk -l  (l'ultimo carattere è una "elle")
    5. Prendi nota della partizione su cui è installato Linux (Noi nei codici seguenti useremo /dev/sdaX)
    6. Digitare mount /dev/sdaX /mnt
    7. Digitare:
      mount --bind /dev /mnt/dev
      mount --bind /proc /mnt/proc
      mount --bind /sys /mnt/sys
    8. chroot /mnt
    9. Se Linux è installato su  una partizione /boot separata digitare mount /dev/sda2 /boot (Se non sai salta questo passaggio)
    10. Installiamo il GRUB:
      grub-install /dev/sda
      update-grub2
    11. In caso di errori utilizzare: grub-install --recheck /dev/sda
    12. exit
    13. cd ~   (la tilde (~) si fa con AltGr+ì )
    14. unmount /mnt/dev
    15. unmount /mnt/proc
    16. unmount /mnt/sys
    17. unmount /mnt/
    18. Riavviare

    Errore 0xc0000225 \Windows\system32\winload.exe

    Errore 0xc0000225

    \Windows\system32\winload.exe mancante o danneggiato



    OS: Windows 7/8



    mercoledì 27 marzo 2013

    Compilare in C++ su Windows

    Per compilare in c++ su Windows si può utilizzare sempre GCC che è incluso in Code::Blocks (download)

    WINDOWS 7/8 64bit

    Per i processori a 64 bit bisogna installare anche MinGW-w64.

    1)Installa Code::Blocks
    2)Installa MinGW-w64 (Scarica versione testata)
    3)Apri Code Blocks ->Sttings -> Compiler
    4)Seleziona la scheda toolchain Executables
    5)

    martedì 26 marzo 2013

    Compilare C++ in Ubuntu e altri Linux

    Usando il compilatore gcc

    Dal terminale scriviamo:
    
    
    g++ sorgente.cpp -o indirizzo programma compilato
    
    Per avere un avvio automatico possiamo nominare il file compilato in .sh, ma l' estensione non influisce sul funzionamento del programma

    Usando un ide che include gcc

    Per sempificarsi le cose vi consiglio di usare l' IDE Code::Blocks disponibile dal Software Center.
    INSTALLA ORA (apt)

    Creare una lista di adiacenza di un grafo in 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
    #include <cstdlib>
    #include <iostream>
    #include <fstream>
    using namespace std;
    int nodi,narchi;
    int main()
    { ifstream in ("input.txt");
    ofstream out ("output.txt");
    in >>nodi>>narchi;
    int adiacenza [nodi+1][nodi+1];
    for(int i=1;i<nodi+1;i++)
    for(int j=1;j<nodi+1;j++)
    adiacenza [i][j] =0;
    for(int i=0;i<narchi;i++) {
            int u,v;
            in >> u >> v >> adiacenza[u][v];
            adiacenza[v][u]=adiacenza[u][v];
    }
    for(int i=1;i<nodi+1;i++){
    for(int j=1;j<nodi+1;j++)
    if(j==nodi) out<<adiacenza[i][j];
    else out<<adiacenza[i][j]<<" ";
    out<<"\n";}
        return  0;
    }
    

    lunedì 18 marzo 2013

    Dobri (COCI 3/13)

    TESTO

    SOLUZIONE:


     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
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    
    int main()
    {
        int A [1001], N;
    cin >> N;
    int S [N] [N];
    for (int i = 0; i <N; i++){
        for (int j = 0;j <N; j++){
            cin >> S[j][i];
            }
        }
                                        if (N==2){
                                        cout << S[0][1]/2<<" "<<S[0][1]/2;
                                        return 0;}
        A[2] = (S[1][0]-S[2][0]+S[2][1])/2;
        A[1] = S[1][0]-A[2];
        int k =2;
        for (int i = 0; i <N; i++){
        for (int j = 0;j <N; j++){
            A[++k]= S[k-1] [0] -A[1];
            }
        }
        for (int i = 1; i <= N ; i++)
        cout << A [i] << " ";
       
        return 0;
    }
    

    Baka (COCI 3/13)

    TESTO

    Soluzione 1:

     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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    string parole;
    int main()
    {
     cin >> parole;
     char get = parole [0];
     int i =0, tempo = 0;
     while (i != 200){
           switch (get){
                  case 'A':
                 case 'B':
                 case 'C':
                      tempo +=3 ;
                       break;
                 case 'D':
                               case 'E':
                                case 'F':
                                      tempo +=4 ;
                       break;
                  case 'G':
                                   case 'H':
                                   case 'I':
                                         tempo +=5 ;
                       break;  
                         case 'J':
                 case 'K':
                 case 'L':
                       tempo +=6 ;
                       break; 
                   case 'M':
                 case 'N':
                 case 'O':
                       tempo +=7 ;
                       break;  
                         case 'P':
                 case 'Q':
                 case 'R':
                        case 'S':
                              tempo +=8 ;
                       break;
              case 'T':
                 case 'U':
                 case 'V':
                       tempo += 9;
                       break;  
                                            case 'X':
                 case 'W':
                 case 'Y':
                        case 'Z':
                              tempo +=10 ;
                       break;
                                
                  }
                  get = parole [++i];
                 if (get  == '\0') i =200;
           }
     
     cout << tempo;
     
        return 0;
    }
    
    Sapendo però che 'c' - 'a' = 2

    Soluzione 2:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    string parole;
    int main()
    {
     cin >> parole;
     char get = parole [0];
     int i =0, tempo = 0, time []={3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,8,9,9,9,10,10,10,10};
     while (i != 200){
            tempo+=time[get-'A'];
                        get = parole [++i];
                                    if (get  == '\0') i =200;
           }
     
     cout << tempo;
     
        return 0;
    }
    

    Grand Prix (OII 2012)

    TESTO DEL PROBLEMA

    Selezioni Territoriali 2012 - Olimpiadi Italiane dell' Informatica

    Grand Prix 

    Descrizione del problema

    State assistendo a un Gran Premio di Formula 1. Prima dell'inizio, il tabellone riporta la griglia di partenza, ovvero l'ordine in cui le vetture partiranno dalla linea del traguardo. Non appena inizia il gran premio, per ogni sorpasso, il tabellone scrive due numeri: quello della vettura che ha effettuato il sorpasso, e quello della vettura che è stata superata. Il vostro compito è di scrivere un programma che, ricevuti in ingresso l'ordine di partenza e la lista dei sorpassi, calcoli chi ha vinto il gran premio.
    Per esempio, considerate il seguente gran premio, con 3 macchine e 4 sorpassi. L'ordine iniziale di partenza è stato: la vettura numero 2, poi la vettura numero 1 e infine la vettura numero 3. I sorpassi sono stati, nell'ordine:
    1. la numero 3 ha superato la numero 1;
    2. la numero 3 ha superato la numero 2;
    3. la numero 1 ha superato la numero 2;
    4. la numero 2 ha superato la numero 1;
    In questo caso, è facile vedere che la vettura numero 3 ha vinto il gran premio. Come si può notare dall'esempio, i sorpassi avvengono sempre tra due vetture consecutive.

    Dati di input

    Il file di input è costituito da 1+N+M righe di testo. La prima riga contiene due interi positivi separati da uno spazio: N che è il numero di vetture e M che è il numero di sorpassi. Le successive N righe contengono l'ordine di partenza: per ogni riga c'è un numero intero K che rappresenta una vettura, con 1 ≤ K ≤ N. La vettura che parte in i-esima posizione nell'ordine di partenza si trova quindi nella riga (i+1) del file. Le restanti M righe contengono tutti i sorpassi, nell'ordine in cui sono avvenuti, uno in ogni riga. Ogni riga contiene due interi separati da uno spazio: A, ovvero il numero della vettura che ha effettuato il sorpasso, e B, ovvero il numero della vettura che ha subito il sorpasso.

    Dati di output

    Il file di output deve contenere un solo intero: il numero della vettura che ha vinto il gran premio.

    Assunzioni

    • 2 ≤ N ≤ 30
    • 1 ≤ M ≤ 100

    Soluzione

    In lettura basta assegnare ad una variabile <primo> il numero di chi sorpassa la prima vettura e stampare questa variabile.


     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
    #include <cstdlib>
    #include <iostream>
    #include<assert.h>
    #include <fstream>
    
    using namespace std;
    int i;
    ifstream in("input.txt");
    ofstream out("output.txt"); 
    
      
    int main()
    {int macchine, sorpassi, uno, x, y;
    in >> macchine;
    in >> sorpassi;
    in >> uno;
                    for(i=1; i< macchine;i++)
                    in >> x;
          for (i=0; i< sorpassi;i++){
          in >> x >> y;
          if (y == uno)
          uno = x;
          }
    out << uno;
        return 0;
    }
    

    Ordinare un vettore con costo N log2 (N)

    Ordinare un vettore è un' operazione che solitamente (con algoritmi tra i quali c'è il Bubble Sort) ha un costo N².
    Con Merge Sort questo no è un problema.


     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
    void mergesort(int* V, int g){
          if(g == 1)      
          return;
          int k = (g /2);
          int s2 = g-k;
          int V1 [k];
          assert(V1!=NULL);
          int V2 [s2];
          assert(V2!=NULL);
          for ( i = 0; i < k ; i++)
          V1[ i ] = V[ i ];
          for ( i = 0; i < s2 ; i++){
          V2[i] = V[k+i];
          }
                     merge(V1,k);
                     merge(V2,s2);
                     int i1,i2;
         i1=i2 =0;
          while (i1 <k && i2<s2){
                if (V1[i1] <= V2[i2]) {
                      V[i1+i2] = V1[i1];     
                      i1++;
                           }
                           else{
                                V[i1+i2]=V2[i2];
                                i2++;
                                }}
          while (i1 < k) {
                V[i1+i2] = V1[i1];
                i1++;
                }
          while (i2 <s2) {
                V[i1+i2] = V2[i2];
                i2++;
                }
                return;
                }
    

    martedì 8 gennaio 2013

    Spostare un form senza barra del titolo

     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
    Dim bClick As Boolean
    
        Private Sub Form1_MouseDown(ByVal sender As Object, _
        ByVal e As MouseEventArgs) Handles MyBase.MouseDown
            bClick = True
        End Sub
        Private Sub Form1_MouseMove(ByVal sender As Object, _
        ByVal e As MouseEventArgs) Handles MyBase.MouseMove
            Static nX As Single
            Static nY As Single
    
            If bClick Then
                If nX <> 0 Then
                    Me.Left = Me.Left + e.X - nX
                Else
                    nX = e.X
                End If
                If nY <> 0 Then
                    Me.Top = Me.Top + e.Y - nY
                Else
                    nY = e.Y
                End If
            Else
                nX = 0
                nY = 0
            End If
        End Sub
        Private Sub Form1_MouseUp(ByVal sender As Object, _
        ByVal e As MouseEventArgs) Handles MyBase.MouseUp
            bClick = False
        End Sub
    



    Inserendo il codice soprariportato potrete muovere il vostro form in drag and drop

    lunedì 7 gennaio 2013

    AERO Controller

    Vedremo come creare un form Visual Basic con aero e come fare in modo che venga visualizzata una certa immagine - colore al posto dell' areo su Windows Xp e precedenti, oppure su 7/Vista con aero disattivato, il tutto senza digitare neanche una riga di codice!!!

    2- Trascina il controllo nei controlli di Visual Studio
    3- Usa il controllo come se fosse un ImageBox


    Windows 7 Aero attivo

    Il controllo funziona in tutti i Visualstudio e in tutti i linguaggi (VB, C#, C++, F) creando un' applicazione Windows Form, o Libreria con .NET di versione superiore al 2.0



















    Windows 7 senza Aero

    Metro
    Altri Windows

    giovedì 29 novembre 2012

    COME CREARE UN FORM AREO che non presenti parti nere se eseguito senza aero?

    Vedremo come creare un form Visual Basic con aero e come fare in modo che venga visualizzata una certa immagine - colore al posto dell' areo su Windows Xp e precedenti, oppure su 7/Vista con aero disattivato

    venerdì 31 agosto 2012

    Sondaggio Internt

    in rete sta girando un sondaggio su Internet: rispondi e fra un po' vedrete le risposte su Guide Informatiche (igiguide.blogspot.it)

    venerdì 8 giugno 2012

    COME CREARE UNA SUONERIA PER IL CELLULARE ?

    Creare una suoneria per il proprio cellulare è molto semplice: se si sa come fare e si utilizza il programma giusto, bastano pochi minuti ( e tra l'altro verrà un ottimo lavoro).

    COME INSTALLARE Ubuntu (r) ?

    Quali sono le caratteristiche e come installare il più famoso sistema operativo gratuito e Opensource