Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

convert same function/concept of C++ to prolog

Tags:

c++

io

input

prolog

I'm just wondering is it possible to convert/get this concept of c++ code to prolog by using I/O? and if possible, how? because as I was told, prolog is not a powerful programming language so we can only enter one input at a time but by using I/O in prolog, maybe we can search the input in the file.

#include <iostream>
using namespace std;   
int main ()
{
  int i, x;
  int id[5];

  cout << "Please enter an integer value: ";
  cin >> i;
  cout << "The value you entered is " << i<<"\n";

  for(x=0; x<i;x++){

     cout << "Enter id: ";
     cin>>id[x]; 
     }

  for(x=0; x<i;x++){
    cout << "\nYou have enter id "<<x+1<<": "<<id[x];
    }  
   cout<<"\n";

   system("pause");
   return 0;
}
like image 257
umika1150 Avatar asked Nov 22 '25 01:11

umika1150


1 Answers

There are a few ways of writing the example program shown in Prolog. One simplistic approach would be:

main :-
    write('Please enter an integer value: '),
    read(N),
    integer(N),
    N > 0,
    length(L, N),
    maplist(read_n, L),
    write_list(L).

read_n(N) :-
    write('Enter id: '),
    read(N),
    integer(N).

write_list(L) :-
    write_list(L, 1).
write_list([], _) :- nl.
write_list([H|T], N) :-
    format('~nYou have entered id ~w: ~w', [N, H]),
    N1 is N + 1,
    write_list(T, N1).

Test run:

| ?- main.
Please enter an integer value: 4.
Enter id: 5.
Enter id: 6.
Enter id: 3.
Enter id: 6.

You have entered id 1: 5
You have entered id 2: 6
You have entered id 3: 3
You have entered id 4: 6

yes
| ?-
like image 91
lurker Avatar answered Nov 24 '25 18:11

lurker



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!