algoritma bakarmısınız?

Bu başlık kilitlidir. Yeni mesajlar gönderilemez veya mevcut mesajlar düzenlenemez.
ipinip
07-12-2005, 18:43   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
1 mesaj
Kayıt Tarihi:Kayıt: Ara 2005

İki kare matrisin (nxn) çarpımını ekrana yazan programın;
a.        Algoritmasını yazınız.
b.        Programını yazınız.

Programı hazırlarken yapılması zorunlu işlemler;
•        Matrislerin boyutunun (n değişkeninin) kullanıcı tarafından klavyeden girilmesi sağlanacak.
•        n değişkeninin geçerliliği kontrol edilecek (Örn: negatif sayı girdirilmeyecek vb.)
•        A ve B matrisinin elemanlarının kullanıcı tarafından klavyeden girilmesi sağlanacak. (Örn: A(1,1)=3 yazdırılacak ekrana)
•        Girilen sayıların tamsayı olması sağlanacak.
•        Hatalı girişler için kontrol mekanizmaları konacak (Örn: Boş girilmesi vb.)
•        Ekranda sonuç olarak A matrisi, B matrisi ve çarpım matrisi olarak C matrisi matris formatında görüntülenecek.

mail: ipinip@hotmail.com

saygılar

developer
10-12-2005, 06:58   |  #2  
Yeni Üye
Teşekkür Sayısı: 0
43 mesaj
Kayıt Tarihi:Kayıt: Kas 2005

Sanırım Sende Çukurova Uzaktan Eğitim Öğrencisisin :D
Peki Sanada Yazalım. Pascal Dilinde Yazılmış İstedi Diğer Arkadaşlar sanırım seninkide öyle olacak

Cevap-a)

Değişkenler:

N:Matrislerin Boyutu
A:birinci kare matir
B: ikinci Kare matris
C:matrislerin çarpımı

Algoritma:

Adım 1-Başla.
Adım 2-N’yi Oku
Adım 3-A yı oku
Adım 4-Eğer A negarifse Adım 1’e
Adım 4-B’yi oku
Adım 5-Eğer B negatifse Adım 1’e
Adım 5-C=A*B yi yaz
Adım 6-Bitir


Cevap-B)
Uses crt;
var
    A,B,C:Array[1..10,1..10] of integer;
    i,j,k,N:integer;
    label basla,basla1;
Begin
basla:
    Clrscr;write('Matrislerin Boyutunu Giriniz... ');Readln(N);
    Writeln;Writeln('A Matrisi');
    Writeln('-----------');
         For i:=1 to N do
           Begin
                   For j:=1 to N do
                   Begin
                        Gotoxy(5*j,4+i);Readln(A[i,j]);
                                                 if a[i,j]<0 then goto basla;
                         End;End;
                         basla1:
Writeln;Writeln('B Matrisi');
    Writeln('-----------');
     For i:=1 to N do
           Begin
                   For j:=1 to N do
                        Begin
                              Gotoxy(5*j,7+i+N);Readln(B[i,j]);
                                                 if b[i,j]<0 then goto basla1;
                         End;End;Writeln;
Writeln('C=A.B Matrisi');
Writeln('------------------');
For i:=1 to N do
      Begin
             For j:=1 to N do
                  Begin
                    C[i,j]:=0;
                          For k:=1 to N do
                              C[i,j]:=C[i,j]+A[i,k]*B[k,j];
                              Gotoxy(5*j,10+i+2*N);Writeln(C[i,j]);
End;End;
Readln;
End.