referaty.sk – Všetko čo študent potrebuje
Elvíra
Štvrtok, 21. novembra 2024
Základné triedenie a práca so súborom v C++
Dátum pridania: 07.03.2005 Oznámkuj: 12345
Autor referátu: remer
 
Jazyk: Slovenčina Počet slov: 648
Referát vhodný pre: Vysoká škola Počet A4: 2.2
Priemerná známka: 2.99 Rýchle čítanie: 3m 40s
Pomalé čítanie: 5m 30s
 
Ďalej program porovnáva rozmery jednotlivých matíc a zisťuje či sú totožné, aby mohol vykonať ich sčítanie a odčítanie. Keď sa matice zhodujú rozmermi vykoná dané operácie a vypíše ich výsledky na monitor. V opačnom prípade vypíše, že matice sa nedajú sčítať a odčítať, lebo nemajú rovnaké rozmery.
Ďalšou časťou programu je zisťovanie či sa dané matice dajú násobyť a to tak že porovnáme počet stĺpcov 1.matice s počtom riadkou 2. matice. Ak sa zhodujú, program matice vynásobý a výsledok vypíše na monitor. V opačnom prípade zahlási chybu o nemožnosti násobenia daných matíc. Medzi jednotlivými výpismi matíc a hlásení je „brzda“ z dôvodu: ak narábame s maticami väčších rozmerov, tak sa celý výpočet matíc nezmestí na monitor.

Návrh:
Štyri operácie nad maticami sú riešené pomocou funkcií. Sú to načítanie matice, vynásobenie matice (matíc), výpis matice (matíc) a vymazanie matice. Všetky funkcie sú tvorené vnorenými cyklami, ktoré zabezpečujú „behanie“ po matici ako aj po riadkoch a vďaka druhému vnorenému cyklu tak aj po stĺpcoch v jednotlivom riadku. Pri násobení je použité trojité vnorenie cyklov a to tak že prvé dva sú for ako aj pri ostatných operáciach a tretí je while, vďaka ktorému sa v 1. matici pohybujeme postĺpcoch a v 2. matici po riadkoch. Sčítanie a odčítanie je riešené pomocou cyklov priamo v tele programu z toho dôvodu aby bola celková dĺžka programu kratšia. Zisťovanie, či sa matice dajú sčítavať a odčítavať, poprípade násobiť je robené pomocou podmienok if.

Implementácia:

#include
#include
#include
#define MAX 10

void nacitajmaticu( int a[MAX][MAX], int m, int n, FILE *matice);
void vynasobmaticu(int e[MAX][MAX],int a[MAX][MAX],int b[MAX][MAX], int m,int n,int k);
void vypismaticu(int a[MAX][MAX], int m,int n);

void nacitajmaticu(int a[MAX][MAX], int m, int n, FILE *matice)
{
int i, j;
for (i=0;i
 
späť späť   1  |   2   
 
Copyright © 1999-2019 News and Media Holding, a.s.
Všetky práva vyhradené. Publikovanie alebo šírenie obsahu je zakázané bez predchádzajúceho súhlasu.