A+B
A+B, սպորտային ծրագրավորման մեջ հանդիսանում փորձնական խնդիր։ Այդ խնդիրն օգտագործվում է օլիմպիադաներում՝ մասնակիցների թեստային համակարգի հետ ծանոթացնելու համար[1]։
Սովորաբար ծրագրավորման մրցաշարերի ժամանակ կազմակերպիչներն ընդհանրապես չեն նայում այդ ծրագրի կոդին։ Հատուկ թեստավորման համակարգը կոմպիլացնում է խնդրի լուծումը և մեկնարկում է դա նախապես պատրաստված թեստերով։ Եթե լուծումը անցնում է մուտքագրման թեստերով և հաջող արդյունք է ցույց տալիս, ապա խնդիրը համարվում էր լուծված։ Ընդ որում, մասնակիցը պետք է խստորեն հետևի օլիմպիադաների կանոններին, մուտքագրի և դուրս բերի ամբողջ տեղեկությունը ճիշտ ձևաչափով և չմիացնի ծրագրին տարբեր արգելված մոդուլներ (օրինակ՝ conio.h-ը)։
Օլիմպիադայի տևողությունը, որպես կանոն, շատ սահմանափակ է։ Եվ օլիմպիադայի սկզբում մասնակիցների մոտ ժամանակ չկա ստուգել թեստավորող համակարգի հնարավորությունները։ Մրցույթի սկզբում մասնակիցները պետք է կարողանան հեշտությամբ կառավարել թեստավորման համակարգը և նրա միջերեսը։ Որպեսզի մասնակիցներին ծանոթացնեն թեստավորման համակարգին մինչև հիմնական տուրը, անցկացվում է փորձնական տուր, որի ժամանակ մասնակիցներին առաջարկվում են պարզ խնդիրներ, որի լուծման համար անհրաժեշտ ալգորիթմները պարզունակ են։ Հաճախ փորձնական տուրի ժամանակ լինում է «A+B» խնդիրը։
Հասկանալի է, որ փորձնական փուլի ժամանակ կարող է լինել ցանկացած ուրիշ պարզ խնդիր։ Երբեմն փորձնական փուլի ժամանակ լինում են մի քանի պարզ խնդիրներ, որպեսզի մասնակիցները մուտքագրեն տարբեր տեսակի տվյալներ։ Փորձնական փուլի խնդիրների բարդությունը կարող է լինել «A+B» խնդրի հեշտության կամ ավելի բարդ, չնայած որ շատ բարդ խնդիրներ փորձնական փուլում չեն տեղադրում։
«A+B»-ն պատկանում է սպորտային ծրագրավորման այն սակավաթիվ խնդիրների շարքին, որոնք չունեն սյուժե։
Խնդրի պայմանները
[խմբագրել | խմբագրել կոդը]Տրված է երկու թիվ՝ A-ն և B-ն։ Պահանջում է գտնել նրանց գումարը․
Մուտքային տվյալներ
[խմբագրել | խմբագրել կոդը]Մուտքային հոսքում՝ միակ տողում բացատով գրված են երկու թվեր՝ A-ն և B-ն․
Ելքային տվյալներ
[խմբագրել | խմբագրել կոդը]Ելքային հոսքում պետք է մուտքագրել միակ ամբողջական թիվը՝ A և B թվերի գումարը։
Օրինակ
[խմբագրել | խմբագրել կոդը]Տվյալներ | Արդյունք |
---|---|
2 2 | 4 |
3 2 | 5 |
Խնդրի լուծումը
[խմբագրել | խմբագրել կոդը]Լուծման ալգորիթմ
[խմբագրել | խմբագրել կոդը]«A+B» խնդրի լուծման ալգորիթմը իրենից ներկայացնում է գործողությունների պարզ հաջորդականություն։ Ալգորիթմը կարելի է կազմել հետևյալ կերպ․
- Հաշվել A-ն
- Հաշվել B-ն
- Գումարել A-ն և B-ն
- Արտածել ստացված գումարը
Այդ խնդրի լուծումները տարբեր ծրագրավորման լեզուներով
[խմբագրել | խմբագրել կոդը]C ծրագրավորման լեզվով
[խմբագրել | խմբագրել կոդը]#include <stdio.h>
void main()
{
int a, b;
scanf("%d%d", &a, &b);
printf("%d\n", a + b);
}
Պասկալ ծրագրավորման լեզվով
[խմբագրել | խմբագրել կոդը]program aplusb;
var a, b : longint;
begin
Read(a, b);
WriteLn(a + b);
end.
Ջավա ծրագրավորման լեզվով
[խմբագրել | խմբագրել կոդը]import java.util.Scanner;
public class AplusB {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
System.out.println(a + b);
}
}
C++ ծրագրավորման լեզվով
[խմբագրել | խմբագրել կոդը]#include <iostream>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
cout << a + b;
return 0;
}
С# ծրագրավորման լեզվով
[խմբագրել | խմբագրել կոդը]using System;
class Program
{
static void Main()
{
string[] input = Console.ReadLine().Split(' ');
Console.WriteLine(int.Parse(input[0]) + int.Parse(input[1]));
}
}
Python 3 ծրագրավորման լեզվով
[խմբագրել | խմբագրել կոդը]a, b = map(int, input().split(' '))
print(a + b)
Perl ծրագրավորման լեզվով
[խմբագրել | խմբագրել կոդը]($a, $b) = split /\s/, <>;
print $a + $b . "\n";
Common Lisp ծրագրավորման լեզվով
[խմբագրել | խմբագրել կոդը](let ((a (read))
(b (read))
(format t "~a~%" (+ a b)))
Ruby ծրագրավորման լեզվով
[խմբագրել | խմբագրել կոդը]puts gets.split.map(&:to_i).inject(:+)
Haskel ծրագրավորման լեզվով
[խմբագրել | խմբագրել կոդը]main = print . sum . map read . words =<< getLine
AWK ծրագրավորման լեզվով
[խմբագրել | խմբագրել կոդը]{print $1+$2}
A+B խնդիրը տարբեր կայքերում
[խմբագրել | խմբագրել կոդը]- A+B Problem-ը Թամուսում
- A+B Արխիվացված 2008-09-17 Wayback Machine-ը Սարատովի պետական համալսարանի կայքում
- A+B Արխիվացված 2008-11-04 Wayback Machine-ը Սամարայի պետական համալսարանի կայքում
- A+B-ը Ծրագրավորողների դպրոցում
Ծանոթագրություններ
[խմբագրել | խմբագրել կոդը]- ↑ Введение в олимпиадное программирование в Школе программиста