Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Jürgen Hein
/
iax0583
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
c6ede816
authored
Sep 27, 2024
by
Jürgen Hein
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update parandused 1 ArvuAlusteTeisendamine.c
parent
502504c8
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
57 additions
and
38 deletions
Tunnitöö 26.09.24/ArvuAlusteTeisendamine.c
Tunnitöö 26.09.24/ArvuAlusteTeisendamine.c
View file @
c6ede816
//Arv
u aluste teisendamine
//Arv
u aluste teisendamine
...
...
@@ -2,38 +2,38 @@
#include <stdio.h>
#include <string.h>
#define SUURUS 65
#define SUURUS 65
//etteantud konstant
int
main
(
void
)
{
int
letters
[
7
]
=
{
1
,
4
,
7
,
8
,
9
,
22
,
15
};
char
temp
[
SUURUS
];
int
letters
[
SUURUS
];
//täisarvuline massiiv
char
temp
[
SUURUS
];
//massiiv ajutiste suuruste jaoks
char
arv
[
SUURUS
];
int
a
;
int
b
;
int
t
;
int
i
;
int
algbase
;
char
*
alg
;
int
l6ppbase
;
int
a
;
//küsitav arvu algne alus
int
b
;
//küsitav uue arvu alus
int
t
;
//liikmete arv massiivis (alg)
int
i
;
int
algbase
;
//arvu algne alus
char
*
alg
;
int
l6ppbase
;
//uue arvu alus
char
*
l6pp
;
int
result
;
int
mult
;
int
mult
;
//kordaja, võrdne algse aluse numbrilise väärtusega
scanf
(
"%s64"
,
arv
);
//tähemassiivi küsimine
/*
do
do
{
printf
(
"Sisestada muutuja arv"
);
scanf("%d", &arv);
} while (arv
!= 0);*/
scanf
(
"%64s"
,
arv
);
//algse tähemassiivi küsimine
}
while
(
arv
==
0
);
do
{
printf
(
"Sisestada muutuja a"
);
//alg
base küsimine
printf
(
"Sisestada muutuja a"
);
//alg
se arvu alus
scanf
(
"%d"
,
&
a
);
}
while
(
a
==
0
);
do
{
printf
(
"Sisestada muutuja b"
);
//
Lõppbase küsimine
printf
(
"Sisestada muutuja b"
);
//
uue arvu alus
scanf
(
"%d"
,
&
b
);
}
while
(
b
==
0
);
...
...
@@ -46,48 +46,65 @@ int main(void)
if
(
algbase
<
2
||
algbase
>
36
)
{
printf
(
"Esines
e
viga!"
);
printf
(
"Esines viga!"
);
}
if
(
l6ppbase
<
2
||
l6ppbase
>
36
)
{
printf
(
"Esines
e
viga!"
);
printf
(
"Esines viga!"
);
}
if
(
algbase
==
l6ppbase
)
t
=
strlen
(
alg
);
//t = mitu arvu massiivis (alg)
if
(
algbase
==
l6ppbase
)
//Kui algne alus on sama, mis uue arvu alus
{
i
=
0
;
while
(
i
<
7
)
//mis n väärtus?
for
(
i
=
0
;
i
<
t
;
i
++
)
{
alg
[
i
]
=
l6pp
[
i
];
i
++
;
}
}
t
=
strlen
(
alg
);
//t = mitu arvu massiivis alg
i
=
t
-
1
;
for
(
i
=
0
;
i
>=
0
;
i
--
)
//tsükkel kas i>=0?
{
if
(
'0'
<=
alg
[
i
]
||
alg
[
i
]
<=
'9'
)
//Kas massiivi liige on arv vahemikus 0..9?
{
t
=
alg
[
i
]
-
'0'
;
t
=
alg
[
i
]
-
'0'
;
//leida arvuline väärtus
}
if
(
'A'
<=
alg
[
i
]
||
alg
[
i
]
<=
'Z'
){
//Kas massiivi l. on täht vahemikus A..Z?
t
=
alg
[
i
]
-
'A'
+
10
;
if
(
'A'
<=
alg
[
i
]
||
alg
[
i
]
<=
'Z'
)
{
//Kas massiivi l. on täht vahemikus A..Z?
t
=
alg
[
i
]
-
'A'
+
10
;
//leida arvuline väärtus
}
if
(
'a'
<=
alg
[
i
]
||
alg
[
i
]
<=
'z'
){
//Kas massiivi l. on täht vahemikus a..z?
t
=
alg
[
i
]
-
'a'
+
10
;
if
(
'a'
<=
alg
[
i
]
||
alg
[
i
]
<=
'z'
)
{
//Kas massiivi l. on täht vahemikus a..z?
t
=
alg
[
i
]
-
'a'
+
10
;
//leida arvuline väärtus
}
if
(
t
==
-
1
||
t
>=
algbase
)
//t ei saa olla -1 ega väiksem a-st
if
(
t
==
(
-
1
)
||
t
>=
algbase
)
//t ei saa olla -1 ega väiksem a-st
{
printf
(
"Esines
e
viga!"
);
printf
(
"Esines viga!"
);
}
result
=
result
+
mult
*
t
;
mult
=
mult
*
algbase
;
result
+=
mult
*
t
;
mult
*=
algbase
;
//kordaja, mis võrdne algse alusega
}
for
(
i
=
0
;
result
>
0
;
i
++
)
i
=
0
;
while
(
result
>
0
)
{
if
(
result
%
l6ppbase
<
10
)
{
temp
[
i
]
=
'0'
+
(
result
%
l6ppbase
);
}
else
{
temp
[
i
]
=
'A'
+
(
result
%
l6ppbase
-
10
);
}
result
/=
l6ppbase
;
i
++
;
}
/*
while(result>0)
{
temp
[
i
]
=
letters
[
result
%
l6ppbase
];
result
/=
l6ppbase
;
//jagada result/lõppbase ja liita tulemus result-ile
temp[i]=letters[result % l6ppbase]; //ajutine muutuja eelmise tulemuse jäägi ülekandmiseks
result /= l6ppbase; //jagada eelmine tulemus uue alusega
i++; //näitab, mitu tehete tsüklit tehti
}
for
(
t
=
0
;
t
<
1
;
t
++
)
*/
for
(
t
=
0
;
t
<
i
;
t
++
)
{
l6pp
[
t
]
=
temp
[
i
-
t
-
1
];
}
...
...
@@ -96,9 +113,11 @@ int main(void)
{
l6pp
[
0
]
=
'0'
;
l6pp
[
1
]
=
'\0'
;
printf
(
"%s alusel %d on %s alusel %d"
,
arv
,
algbase
,
temp
,
l6ppbase
);
}
else
{
printf
(
"%d=%d"
,
arv
[
a
],
temp
[
b
]);
temp
[
i
]
=
'\0'
;
printf
(
"%s alusel %d on %s alusel %d"
,
arv
,
algbase
,
temp
,
l6ppbase
);
}
return
0
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment