3. Циклді құрылымды алгоритмді бағдарламалау
Жұмыс мақсаты – циклдық құрылымды алгоритмдерді бағдарламалаудың ерекшеліктерімен танысу.
3.1 Практикалық жұмыс №4
N бүтін саны берілген. P=N!=1´2´3´…´N табу керек.
Блок-схема:
басы
n енгізу
k=1,n
p=1 d=n%10
p=p*k d=n%10
P шығару
соны
Бағдарламалық алгоритмі:
Pascal:
uses crt;
var N,P,k: integer;
begin
writeln('Butin san engiziniz');
read (N);
p:=1;
for k := 1 to N do
begin
p:=p*k;
end;
writeln('P=N!=',p)
end.
Си:
#include<stdio.h>
#include<conio.h>
#include<math.h>
main()
{
int n,P,k;
printf("Butin san engiziniz\n");
scanf("%d",&n);
P=1;
for (k = 1; k <= n; k++)
{
P=P*k;}
printf("P=N!=%d",P);
getch();}
Бағдарламаның нәтижесі:
4. Массивтерді өңдеу
4.1 Практикалық жұмыс №5
Жұмыстың мақсаты – есеп шығаруда бір өлшемді және екі өлшемді массивтерді, сонымен қатар бағдарламалаудың ерекше тәсілдерін пайдалана отырып, бағдарламалу дағдысын меңгеру.
Х(10) массивінің бірінші теріс элементін және оның рет нөмірін баспаға шығару керек.
Блок-схема:
i=1,10
а[i] енгізу
i=10,1
a[i]<0
b=a[i],n=i
, басы
−
соны
b шығару
n шығару
+
Бағдарламалық алгоритмі:
Pascal:
uses crt;
var x: array [1..10] of real;
b:real;
i,n: integer;
begin
writeln('Massiv elementterin engiziniz:');
for i :=1 to 10 do
read( x[i] );
for i :=10 downto 1 do
begin
if x[i]<0 then b:=x[i];
if x[i]<0 then n:=i;end;
writeln('Massivtin birinwi teris elementi ',b);
writeln ('rettik nomeri ',n);
end.
Си:
#include<stdio.h>
#include<conio.h>
#include<math.h>
#define X 10
main()
{
int i,n;
float a[X],b;
printf("Massiv elementterin engiziniz\n");
for(i=1;i<=10;i++)
{
scanf("%f",&a[i]);
}
for(i=10;i>=1;i--)
{
if(a[i]<0)
{b=a[i];
n=i;}
}
printf("Massivtegi en algashky teris element %6.2f",b);
printf("\nrettik nomeri %d",n);
getch();
}
Бағдарламаның нәтижесі:
4.2 Практикалық жұмыс №6
А(3,5) екі өлшемді массивіндегі оң элементтердің санын табу.
Блок-схема:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Бағдарламалық алгоритмі:
Pascal:
uses crt;
type A = array [1..3,1..5]of real;
var n:A; i, j, K: integer;
begin
clrscr;
randomize;
writeln('Sgenerirovannyi massiv A(3,5)');
for i:=1 to 3 do
begin
for j:=1 to 5 do
begin
n[i,j]:=random(10)-3;
write(n[i,j],' ');end;
writeln;end;
K:=0;
for i:=1 to 3 do
begin
for j:=1 to 5 do
begin
if n[i,j] > 0 then
K:=K+1;end;end;
writeln ('massivte ',K,' on element bar');
end.
Си:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
#define n 3
#define m 5
main()
{
int a[n][m],i,j,k;
srand(time(NULL));
printf("Sgenerirovannyi massiv a[3][5]\n");
k=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
a[i][j]=rand()%10-3;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
printf("%d ",a[i][j]);
printf("\n");}
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(a[i][j]>0)
k++;
printf("%d\n",k);
getch();
}
Бағдарламаның нәтижесі:
