Probleme de informatică
Clasa a IX-a
Elementele de bază C++ (46)
Subprograme predefinite (1)
Fişiere text (2)
Algoritmi elementari (109)
Tablouri unidimensionale (83)
Tablouri bidimensionale (64)
Probleme diverse (13)
Clasa a X-a
Subprograme (funcții) (87)
Şiruri de caractere (49)
Tipul înregistrare (26)
Recursivitate (57)
Alocarea dinamică a memoriei (2)
Liste înlănţuite (25)
Algoritmul lui Lee (1)
Clasa a XI-a
Metoda "Divide et impera" (12)
Metoda Backtracking (85)
Metoda Greedy (6)
Programare dinamică (18)
Grafuri neorientate (37)
Grafuri orientate (38)
Arbori (33)
Clasa a XII-a
Elemente de bază C# (32)
POO în C# (13)
Programare vizuală în C# (11)
Examen de bacalaureat
Competențe digitale
Examen de atestat
Admitere UBB (18)
Se citesc din fisierul date.in un numar natural n si apoi o matrice n*n cu elemente numere intregi. Ordonati crescator numerele de pe prima linie a matricii prin interschimbari de coloane si afisati matricea in fisierul date.out.
Se vor scrie functii pentru urmatoarele operatii:
- citirea datelor (n si matricea) dintr-un fisier precizat ca paramentru
- afisarea matricii intr-un fisier precizat ca paramentru
- interchimbarea a doua valori intregi
- interchimbarea a doua coloane dintr-o matrice
- ordonarea ceruta
Exemplu:
date.in
4
2 3 1 8
5 4 3 2
7 6 5 4
9 8 7 6
date.out
1 2 3 8
3 5 4 2
5 7 6 4
7 9 8 6


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace p19
{
    class Program
    {
        static void citire(out int n, out int[,] A, string fis)
        {//citire matrice patratica din fisier precizat prim param
            StreamReader fin = new StreamReader(fis);
            n = int.Parse(fin.ReadLine());
            A = new int[n, n];
            for (int i = 0; i < n; i++)
            {
                string linie = fin.ReadLine();
                string[] s = linie.Split();
                for (int j = 0; j < n; j++)
                    A[i, j] = int.Parse(s[j]);
            }
            fin.Close();
        }

        static void afisare(int n, int[,] A, string fis)
        {//afisare matrice patratica in fisier precizat prin param
            StreamWriter fout = new StreamWriter(fis);
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                    fout.Write(A[i, j] + " ");
                fout.WriteLine();
            }
            fout.Close();
        }

        static void inter(ref int a, ref int b)
        {//interchimba doua valori
            int aux = a; a = b; b = aux;
        }

        static void intercol(int n, int[,] A, int i, int j)
        {//interschimba coloana i cu coloana j in matricea A
            for (int k = 0; k < n; k++)
                inter(ref A[k, i], ref A[k, j]);
        }

        static void ordonare(int n, int[,] A)
        {//ordoneaza crescator prima linie prin interschimbari de coloane  
            for (int i = 0; i < n; i++)
                for (int j = i + 1; j < n; j++)
                    if (A[0, i] > A[0, j])
                        intercol(n, A, i, j);
        }

        static void Main(string[] args)
        {
            int n;
            int[,] A;
            citire(out n, out A, "date.in");
            ordonare(n, A);
            afisare(n, A, "date.out");
        }
    }
}

21 nov 2018
Site-ul conține 868 de probleme rezolvate
Copyright © 2009-2018 Muresan Vasile Ciprian